2016-10-19 9 views
-1

Я хочу, чтобы проверить запись, используя, если заявление в SQL вот мой запросКак писать, если условие основано на сервере SQL верхнего запроса

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

Что это за заявление? Я бы установить это больше похоже: выберите @reporttitle = случай, когда rs.grade = 'A' THEN 'РИСК (15-18) * (A)' ELSE '' END от riskassessment_detail RS где 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 
Смежные вопросы