我试图从单个CASE语句中获取多个列(在这种情况下为insuredcode,insuredname).
已尝试以下查询,但它将insuredcode和insuredname连接为一列.
从这样的CASE语句中返回两列的正确语法是什么?
select
case
when a.policyno[2] in ('E', 'W') then c.insuredcode || c.insuredname
else b.insuredcode || b.insuredname
end
from prpcmain a
left join prpcinsured_1 b on b.proposalno=a.proposalno
left join prpcinsured_2 c on c.proposalno=a.proposalno
where a.policyno in (select policyno from policyno_t);
Run Code Online (Sandbox Code Playgroud)
Pரத*_*ீப் 13
一个CASE声明只能返回单列没有多列
您需要两个不同的CASE语句才能执行此操作
select
case
when a.policyno[2] in ('E', 'W') then c.insuredcode
else b.insuredcode
end as insuredcode ,
case
when a.policyno[2] in ('E', 'W') then c.insuredname
else b.insuredname
end as insuredname
from prpcmain a
left join prpcinsured_1 b on b.proposalno=a.proposalno
left join prpcinsured_2 c on c.proposalno=a.proposalno
where a.policyno in (select policyno from policyno_t);
Run Code Online (Sandbox Code Playgroud)
小智 5
它就像任何语言中的 if/else 条件一样,你可以在When语句中定义你的条件,如果条件为 true,SQL 执行Then语句,否则执行Else部分,如下所述:
Select
CASE
WHEN (cs.ResultSubmitToHOD = 1) THEN 'HOD'
WHEN (cs.ResultSubmitToExamDep = 1) THEN 'Exam'
ELSE 'Teacher'
END AS ResultSubmitStatus
From dbo.CourseSection as cs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39156 次 |
| 最近记录: |