header5.jpg
首頁 arrow 專業討論區 
TWIUG Forum
歡迎, 訪客
登入註冊.
遺失密碼?
sql statement( 好像 A OR B 一樣,當 A 是 TRUE 的時候就不會檢查B (1 人正在瀏覽)
前往最底 張貼回覆

主題: sql statement( 好像 A OR B 一樣,當 A 是 TRUE 的時候就不會檢查B

#69
cheer (用戶)
Fresh Boarder
文章: 3
graphgraph
sql statement( 好像 A OR B 一樣,當 A 是 TRUE 的時候就不會檢查B 2007/10/12 16:04 聲譽: 0  
在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
  管理員已關閉公開寫入.
#80
junlin (用戶)
Fresh Boarder
文章: 2
graphgraph
回覆:sql statement( 好像 A OR B 一樣,當 A 是 TRUE 的時候就不會檢查B 2008/03/06 16:35 聲譽: 0  
informix 也有NVL
不過NVL的功用是把NULL轉成其他值, 不是你說的那樣喔
  管理員已關閉公開寫入.
前往最頂 張貼回覆
Copyright 2007 Best of Joomla, Powered by FireBoard直接取得最新文章到你的桌面