0
可以說我有一個表:T返回列中是否存在值的數組?
Id Val
==========
1 100
2 200
3 300
我要檢查,如果在陣列中,如(400,200,100,700,900)的每一個元素,存在於上表中,預期的結果是:
(0, 1, 1, 0, 0) or (false, true, true, false, false)
任何想法如何寫入select語句?
可以說我有一個表:T返回列中是否存在值的數組?
Id Val
==========
1 100
2 200
3 300
我要檢查,如果在陣列中,如(400,200,100,700,900)的每一個元素,存在於上表中,預期的結果是:
(0, 1, 1, 0, 0) or (false, true, true, false, false)
任何想法如何寫入select語句?
你可以做這樣的事情
SELECT CASE WHEN t.val IS NULL
THEN 0 ELSE 1 END value_exists
FROM
(
SELECT 400 val UNION ALL
SELECT 200 UNION ALL
SELECT 100 UNION ALL
SELECT 700 UNION ALL
SELECT 900
) a LEFT JOIN Table1 t
ON a.val = t.val
輸出:
| VALUE_EXISTS | ---------------- | 0 | | 1 | | 1 | | 0 | | 0 |
這裏是SQLFiddle演示
你可以說選擇*從T WHERE Val = 400或Val = 200等,然後將結果映射到數組。那些映射的是真實的,而不是虛假的。
謝謝。這對我來說很有用。 – user2006633
@ user2006633非常歡迎:)如果是你正在尋找的請考慮** [接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-答案)**答案。 – peterm