2012-11-25 64 views
2
SELECT * 
FROM REVIEW 
WHERE REVIEWERID =5 AND APPRAISEECONFIRMYN='Y' AND HRCONFIRMYN = NULL 

我們可以給出2'AND'條件嗎?我沒有得到正確的輸出。在滿足上述條件的數據庫中有2條記錄,但是當執行查詢時不會顯示它。當我刪除最後一個條件'HRCONFIRMYN = NULL'並執行時,我得到正確的輸出。SQL'select'具有3個條件的查詢

如何解決?我需要檢查所有3個條件searchng記錄

+0

也許HRCONFIRMYN確實不是null? 「HRCONFIRMYN是否爲空」工作?根據DBMS和設置「= NULL」可能不起作用(並且不符合ANSI) –

+0

好的,喬納森。 Ya Jim,'HRCONFIRMYN IS NULL'起作用。 –

回答

6

要比較NULL的值,您必須使用IS NULL謂詞而不是= NULL像這樣:

SELECT * 
FROM REVIEW 
WHERE REVIEWERID = 5 
    AND APPRAISEECONFIRMYN = 'Y' 
    AND HRCONFIRMYN IS NULL 
+0

這爲我節省了很多時間,祝你好運! – SaidbakR

+0

非常感謝Mahmoud Gamal。 IT WORKED .. –

+0

@sanuj - 不客氣。嘗試[**接受答案**](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work),如果您發現它有幫助,或其他答案在這裏介紹。通過檢查左側的標記。這是在這裏如何工作的。謝謝。 –

1
  • 使用OR代替
  • 組你的病情
  • 使用IS NULL與空值

查詢比較時,

SELECT * 
FROM REVIEW 
WHERE (REVIEWERID =5 AND APPRAISEECONFIRMYN='Y') OR 
     HRCONFIRMYN IS NULL 
+0

謝謝庫亞,'或'應該用'和'取代? –

+1

@sanuj:請不要SHOUT。是的,出於您的目的,OR應該用AND代替,括號則不必要。 –

+0

對不起,我沒有留言。可能你錯誤​​,因爲我的大寫字母是正確的,噢,上帝,我想告訴你,這並不意味着你想到的任何東西..我使用大寫字母鍵入sql managmnt工作室,所以在此期間我在這裏輸入了評論,我忘了關閉大寫鎖定。 –