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

このEXISTS 条件を確認してください

サブクエリが少なくとも 1 つの行を返す場合、SQL EXISTS 条件は「満たされる」と見なされます。

于 2013-08-27T06:40:12.060 に答える