2

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

  • 检查表是否包含患者的记录
    • 如果它确实返回,则“是”
    • 否则返回“否”

现在,我想创建一个执行此操作的过程,因此我尝试创建一个执行上述操作的函数,但最终导致动态查询,这在函数中是不可能的。

有可能实现这一目标吗?我该怎么办?

PS:也许是这样的:

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

1 回答 1

5

试用案例

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

检查这个存在条件

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

于 2013-08-27T06:40:12.060 回答