如何检查SQL子查询中是否存在字段?

时间:2013-08-27 06:34:01

标签: sql sql-server tsql stored-procedures

我必须用这种逻辑做很多查询:

  • 检查表格是否包含患者的记录
    • 如果确实返回'是'
    • 否则返回'否'

现在,我想创建一个执行此操作的过程,因此我尝试创建一个将执行上述操作的函数,但最终会在函数中无法实现动态查询。

有可能实现这一目标吗?我怎么能这样做呢?

PS: 也许是这样的:

select 
(IF EXISTS(SELECT * FROM Dtl_Patient WHERE Pk = 3990 select 'Yes' else select 'No')) as output from dtl_AllPatient;

1 个答案:

答案 0 :(得分:5)

尝试CASE

SELECT 
   CASE WHEN EXISTS (SELECT PatientID FROM Table2 T2 WHERE T2.PatientID =T1.PatientID)
       THEN 'YES' ELSE 'NO' END AS PatientExists
FROM
Table1 T1

修改

SELECT 
    CASE WHEN EXISTS (SELECT Pk FROM Dtl_Patient WHERE Pk = 3990) THEN 'YES' ELSE 'NO' END AS PatientExists
FROM dtl_AllPatient

检查此EXISTS Condition

如果子查询返回至少一行,则SQL EXISTS条件被视为“满足”。