假设我有一张桌子: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演示
您可以说 Select * from T WHERE Val=400 或 Val=200 等。然后将结果映射到数组。做地图的是真的,不做的是假的。