2016-10-19 49 views
-1

我想用檢查記錄,如果在SQL語句中,這裏是我的查詢如果基於上查詢SQL Server的條件

declare @reporttitle nvarchar(100) 

select 
    rs.risk_assesment_id, rs.grade, rs.assessmentdate, 
    pat.name, pat.card_id_no, pat.dob, pat.age, pat.mrn, 
    pat.nationality, pat.mobileno, 
    @reporttitle as title 
from 
    riskassessment_detail rs 
where 
    rs.risk_assesment_id = 22 

IF ((SELECT r.grade 
    FROM riskassessment_detail r 
    WHERE r.risk_assesment_id = 22) ='A') 
    SET @reporttitle = 'AT RISK (15-18)* (A)'; 

reporttitle最終被null怎麼寫;我想要得到的文本如何解決我的問題

+0

這是什麼else語句?我會設置它更像是:選擇 @reporttitle =情況下,當rs.grade = 'A',那麼 '危險(15-18)*(A)' ELSE'從 riskassessment_detail RS END 其中 rs.risk_assesment_id = 22 – JesalynOlson

+0

你不想要IF,你想要CASE – HLGEM

回答

0

如果我沒看錯你需要移動IF條件SELECT上面的查詢設置變量與'AT RISK (15-18)* (A)'字符串時IF條件得到滿足,並顯示在SELECT

declare @reporttitle nvarchar(100) 

IF EXISTS (SELECT 1 
    FROM riskassessment_detail r 
    WHERE r.risk_assesment_id = 22 
     AND r.grade='A') 
    SET @reporttitle = 'AT RISK (15-18)* (A)'; 


select 
    rs.risk_assesment_id, rs.grade, rs.assessmentdate, 
    pat.name, pat.card_id_no, pat.dob, pat.age, pat.mrn, 
    pat.nationality, pat.mobileno, 
    @reporttitle as title 
from 
    riskassessment_detail rs 
where 
    rs.risk_assesment_id = 22