另一列中包含的布尔值列 - SQL
boolean column of values contained in another column - SQL
在这个页面
Check if column value exists in another column in SQL
用户想要获取包含在 Calling_ID 和 Called_ID 列中的 ID。
假设我在两个不同的表中有该列,比如
Table T1
Calling_ID
27
15
80
90
60
88
15
30
27
40
和
Table T2
Called_ID
10
20
90
88
30
40
60
40
95
30
另一个人想要 90、88、30 和 40 作为结果 - 我想要这种类型的布尔列作为结果
Calling_ID contained
27 0
15 0
80 0
90 1
60 0
88 1
15 0
30 1
27 0
40 0
我该怎么做?非常感谢!
你可以从T1左连接到T2,检查调用的ID是否为NULL,例如:
SELECT
Calling_ID,
CASE
WHEN T2.Called_ID IS NULL THEN 0
ELSE 1
END AS Contained
FROM T1
LEFT JOIN T2 ON T1.Calling_ID = T2.Called_ID
尝试将左连接与 case..when..then 结合使用以检查调用的 id 是否为空然后输出 0 否则输出为 1,如:
SELECT t1.calling_id, CASE WHEN t2.called_id IS NULL THEN 0 ELSE 1 END CASE AS "contained"
FROM t1 LEFT JOIN t2
ON t1.calling_id = t2.called_id
在这个页面 Check if column value exists in another column in SQL
用户想要获取包含在 Calling_ID 和 Called_ID 列中的 ID。 假设我在两个不同的表中有该列,比如
Table T1
Calling_ID
27
15
80
90
60
88
15
30
27
40
和
Table T2
Called_ID
10
20
90
88
30
40
60
40
95
30
另一个人想要 90、88、30 和 40 作为结果 - 我想要这种类型的布尔列作为结果
Calling_ID contained
27 0
15 0
80 0
90 1
60 0
88 1
15 0
30 1
27 0
40 0
我该怎么做?非常感谢!
你可以从T1左连接到T2,检查调用的ID是否为NULL,例如:
SELECT
Calling_ID,
CASE
WHEN T2.Called_ID IS NULL THEN 0
ELSE 1
END AS Contained
FROM T1
LEFT JOIN T2 ON T1.Calling_ID = T2.Called_ID
尝试将左连接与 case..when..then 结合使用以检查调用的 id 是否为空然后输出 0 否则输出为 1,如:
SELECT t1.calling_id, CASE WHEN t2.called_id IS NULL THEN 0 ELSE 1 END CASE AS "contained"
FROM t1 LEFT JOIN t2
ON t1.calling_id = t2.called_id