我在寫一個查詢,找到該節點的值排序表BST節點類型不工作。 表,BST,有兩列N和P,其中N表示在BST節點的值,P是N的父 說,BST具有以下記錄: BST Table「NOT IN」預期
我成功執行該查詢如下:
SELECT n,CASE
WHEN p IS NULL THEN 'Root'
WHEN n IN (SELECT DISTINCT p FROM BST) THEN 'Inner'
ELSE 'Leaf'
END
FROM BST
ORDER BY n;
而不是用 「IN」,當我嘗試使用 「NOT IN」 相同的查詢下面給出不過:
SELECT n,CASE
WHEN p IS NULL THEN 'Root'
WHEN n NOT IN (SELECT DISTINCT p FROM BST) THEN 'Leaf'
ELSE 'Inner'
END
FROM BST
ORDER BY n;
如預期沒有奏效。爲什麼這樣?
不是和NULL的可能會讓你大吃一驚! (這就是爲什麼我推薦'NOT EXISTS'的原因。) – jarlh
「*它沒有按預期工作。*」 - 那麼你期望什麼? –
@a_horse_with_no_name我期望它給出與使用「IN」相同的輸出 – PiyushM