是否可以在sql查询条件表达式的in()
构造中使用case.. when ...the
子句。
我的情况是查询很长:
select r.insurance_package_id,r.name,
max(case r.insurance_package_id when 6 then r.name
when 7 then r.name
when 8 then r.name
when 9 then r.name
when 10 then r.name
when 11 then r.name
when 12 then r.name
when 14 then r.name
when 42 then r.name
when 44 then r.name
when 7 then r.name
end) CPI_Life
应该在条件表达式中使用大约200个id:因此,查询将非常残酷。
最佳答案
可能。请参考以下代码段
SELECT r.insurance_package_id
,r.NAME
,max(CASE
WHEN r.insurance_package_id IN (
6
,7
,8
,9
,10
,11
,12
,14
,42
,44
,7
)
THEN r.NAME
END) CPI_Life