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

rtu*_*ner 2 sql t-sql sql-server stored-procedures

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

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

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

是否有可能实现这一目标?我怎么能这样做?

PS:也许是这样的:

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

bvr*_*bvr 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
Run Code Online (Sandbox Code Playgroud)

编辑

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

检查此EXISTS条件

如果子查询返回至少一行,则认为SQL EXISTS条件"满足".