我必须用这种逻辑做很多查询:
现在,我想创建一个执行此操作的过程,因此我尝试创建一个将执行上述操作的函数,但最终会在函数中无法实现动态查询。
有可能实现这一目标吗?我怎么能这样做呢?
PS: 也许是这样的:
select
(IF EXISTS(SELECT * FROM Dtl_Patient WHERE Pk = 3990 select 'Yes' else select 'No')) as output from dtl_AllPatient;
答案 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
如果子查询返回至少一行,则SQL EXISTS条件被视为“满足”。