在sql server or orcal 有一sql 指令
1)sql server
WHERE (

ARAMETER_NAME IS NULL OR (COLUMN_NAME =

ARAMETER_NAME))
好像 A OR B 一樣,當 A 是 TRUE 的時候,就不會檢查 B ,
當 A 是 FALSE 的時候,才會檢查 B 。
2) 如果是用 Oracle 的話,Oracle 有一個叫 NVL 函數(不知其它資料庫有沒有類似的),
例如在 SQL 內寫:
WHERE COLUMN_NAME = NVL(

ARAMETER_NAME, COLUMN_NAME)
如果使用者有輸入

ARAMETER_NAME ,就會變成:
WHERE COLUMN_NAME =

ARAMETER_NAME
如果使用者沒有輸入,那麼

ARAMETER_NAME 就變成 NULL :
WHERE COLUMN_NAME = COLUMN_NAME
這就好像廢除了

ARAMETER 一樣。優點是您不需要在程式碼檢查它有沒有輸入東西。
不知informix 有無類似指令
文章曾經由此用戶編輯: cheer, 於: 2007/10/12 16:05