select、where、from、to
select 陳述式會回傳一個記錄(nid)陣列。它可以搭配 where、from 與 to 子句使用。
範例:
下面這個例子從 Customer 表格中取出前 10 個名字含有字母「s」的名字:
(select Customer where 'First name' like "s" from 0 to 9).'first name'
where 子句
where 子句的內容是在伺服器上執行的。
- 因此,
where子句中無法使用某些函式,例如alert或dialog。
From 與 To
使用 from 與 to 時,只會回傳索引 0 到 9 的記錄。
- 這個功能在取出前 x 筆記錄,或為查詢結果分頁時很好用。
執行區塊
執行區塊就是 select 陳述式結尾那個點號後面的部分。在上面的例子中,執行區塊是 'first name'。
比較複雜的執行區塊可以包含變數,甚至再嵌入 select 陳述式。和函式一樣,區塊中的最後一道陳述式決定結果陣列的型別與值。
範例:
下面這段程式碼產生一個數字陣列,代表每位客戶的銷售總額:
(select Customer where 'First name' like "s" from 0 to 9).
(
var a := id;
var i := select invoice where customer = a;
sum(i.TOTAL);
)
警告:
如果執行區塊中會存取其他表格,程式碼在伺服器上執行時可能出現問題。
- 遇到這種情況,改用
for i in select迴圈會比較好。
