Sql server 返回列中是否存在值数组?
假设我有一张桌子:TSql server 返回列中是否存在值数组?,sql-server,arrays,return,exists,Sql Server,Arrays,Return,Exists,假设我有一张桌子: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*from T,其中Val=400或Val=200等。然后将结果映射到数组。做映射的是真的,不做映射的是假的。你可以
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*from T,其中Val=400或Val=200等。然后将结果映射到数组。做映射的是真的,不做映射的是假的。你可以这样做
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 |
这是演示文稿 @ USSR02633。欢迎你:如果是你要找的,请考虑答案。