2017-09-15 3 views
-1

Kann mir jemand sagen, was falsch mit meiner Case-Anweisung?SQL Case-Anweisung mit Unterabfrage

select 
(case 
     when (select top 1 descr from t1 inner join t2 on t2.id = t1.id where t1.code = '17418')= 'C' Then 'Cancelled'<br/> 
     when (select top 1 descr from t1 inner join t2 on t2.id = t1.id where t1.code = '100020')= 'CL' Then 'Closed'<br/> 
     when (select top 1 descr from t1 inner join t2 on t2.id = t1.id where t1.code = '1105')= 'R' Then 'Reserved'<br/> 
     when (select top 1 descr from t1 inner join t2 on t2.id = t1.id where t1.code = '1106')= 'S' Then 'Scheduled' <br/> 
     else null end) <br/> 
From table 
+1

Warum denken Sie, ist etwas falsch mit ihm machen wollte? –

+0

Ist das ein gültiger Code oder Pseudocode? Was ist 'Von Tisch'? – Parfait

+0

es zieht nur die erste Aussage nicht den Rest – Jason312

Antwort

1

Ich glaube, Sie so etwas wie dieses :)

select CASE t1.descr 
    WHEN 'C' THEN 'Cancelled' 
    WHEN 'CL' THEN 'Closed' 
    WHEN 'R' THEN 'Reserved' 
    WHEN 'S' THEN 'Schedule' 
    ELSE 
END as descr_Text 
    from t1 
inner join t2 on t2.id = t1.id 
where t1.code in('17418','100020','1105',....)