Nal*_*526 67 sql sql-server exists
如何使用IF EXISTS语句(SQL Server)从子查询中选择布尔值?
它应该是这样的:
SELECT
TABEL1.Id,
NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID)
SELECT 'TRUE'
ELSE
SELECT 'FALSE')
FROM TABEL1
Run Code Online (Sandbox Code Playgroud)
ype*_*eᵀᴹ 103
用途CASE
:
SELECT
TABEL1.Id,
CASE WHEN EXISTS (SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABLE1.ID)
THEN 'TRUE'
ELSE 'FALSE'
END AS NewFiled
FROM TABLE1
Run Code Online (Sandbox Code Playgroud)
如果TABLE2.ID
是唯一键或主键,您还可以使用:
SELECT
TABEL1.Id,
CASE WHEN TABLE2.ID IS NOT NULL
THEN 'TRUE'
ELSE 'FALSE'
END AS NewFiled
FROM TABLE1
LEFT JOIN Table2
ON TABLE2.ID = TABLE1.ID
Run Code Online (Sandbox Code Playgroud)
Pur*_*ish 18
您还可以使用ISNULL和select语句来获得此结果
SELECT
Table1.ID,
ISNULL((SELECT 'TRUE' FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID),'FALSE') AS columName,
etc
FROM TABLE1
Run Code Online (Sandbox Code Playgroud)
SELECT Id, 'TRUE' AS NewFiled FROM TABEL1
INTERSECT
SELECT Id, 'TRUE' AS NewFiled FROM TABEL2
UNION
SELECT Id, 'FALSE' AS NewFiled FROM TABEL1
EXCEPT
SELECT Id, 'FALSE' AS NewFiled FROM TABEL2;
Run Code Online (Sandbox Code Playgroud)
使用一个CASE
语句并这样做:
SELECT
T1.Id [Id]
,CASE WHEN T2.Id IS NOT NULL THEN 'TRUE' ELSE 'FALSE' END [Has Foreign Key in T2]
FROM
TABLE1 [T1]
LEFT OUTER JOIN
TABLE2 [T2]
ON
T2.Id = T1.Id
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
191650 次 |
最近记录: |