假设我有一张桌子: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语句吗?
答案 0 :(得分:1)
你可以做这样的事情
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 演示
答案 1 :(得分:0)
你可以说从T WHERE Val = 400或Val = 200等选择*然后将结果映射到数组。映射的是真实的,而不映射的是真的。