我有我的記錄(在示例1000),它與使用parentid的父項相關的其他記錄。 我想在所有「孩子」都處於關閉狀態時選擇該記錄!SQL查詢問題 - 對於綁定到同一表中的其他記錄的記錄始終返回空值
表T1:
ID PARENTID STATUS
1000 null PENDING
1001 1000 CLOSED
1002 1000 CLOSED
我寫SQL但儘管它不應該(「不」並不能很好地工作)
SELECT ID
FROM T1
WHERE PARENTID IS NULL AND ID NOT IN (SELECT PARENTID FROM T1 WHERE STATUS!='CLOSED')
但它返回的返回我空me null雖然SELECT PARENTID FROM ID WHERE STATUS!='CLOSED'
不返回1000. 爲什麼?如何選擇,然後如果「NOT IN」子句不起作用。
非常非常重要的一點是我不能使用"WHERE PARENTID=ID"
雖然我知道這將是解決方案,但我必須以不同的方式做到這一點!
是的! COALESCE是解決方案!謝謝!這個函數到底做了什麼?再次感謝 – Dejan
如果該列爲空,它將用您指定的值替換null,在這種情況下爲0,以便您可以將其與「IN」子句進行比較。您無法在null上執行!=,=,IN等因爲空不等於平等或不平等。 – JUG