single 與 up to 1 rows的區別

TolyHuang發表於2008-01-15

[@more@]
選擇一條記錄:single 、 up to 1 rows
使用single : 在where語句中如果使用了全部的key欄位可以使用single
格式: SELECT single Field_Name_List
FROM Table_Name
WHERE Condition_List
使用up to 1 rows : 在where語句中如果使用了部分或沒有使用key欄位,則只能使用up to 1 rows
格式 : SELECT Field_Name_List
FROM Table_Name
up to 1 rows
WHERE Condition_List
ENDSELECT
例題 : 表kssk,其中MANDT、OBJEK、MAFID、KLART、CLINT、ADZHL為key欄位。
使用single : SELECT single CLINT
INTO KSSK-CLINT
FROM KSSK
WHERE OBJEK EQ INOD-CUOBJ
AND MAFID EQ C_O_SIGN
AND KLART EQ C_KLART
使用up to 1 rows : SELECT CLINT
INTO KSSK-CLINT
FROM KSSK
up to 1 rows
WHERE OBJEK EQ INOD-CUOBJ
AND MAFID EQ C_O_SIGN
AND KLART EQ C_KLART
ENDSELECT
在使用single時是錯誤的,而使用up to 1 rows是正確的。
因為single,在where子句中要使用所有key欄位的作為條件才能使用single。
而up to 1 rows 則使用了部分或沒有使用key欄位都可以使用。
single 取第一個符合條件的資料,不需要繼續再查詢下去。
up to 1 rows 先查詢所有資料,再取一條符合條件的資料。
up to n rows 可以取n條資料。
各有好處。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9437124/viewspace-997334/,如需轉載,請註明出處,否則將追究法律責任。

相關文章