select (case when 第二字段 is not null then 第二字段 else 第一字段 end) 字段名 from table_name;
请问这句(casewhen第二字段isnotnullthen第二字段else第一字段end)我要放在where条件后面第二个字段传值过来怎么写啊帮帮忙,...
请问 这句 (case when 第二字段 is not null then 第二字段 else 第一字段 end)
我要放在where 条件后面 第二个字段传值过来 怎么写啊
帮帮忙, 展开
我要放在where 条件后面 第二个字段传值过来 怎么写啊
帮帮忙, 展开
2个回答
展开全部
没明白什么意思,不过这个case when可以当成一个字段理解,不要看这么复杂的一个选择,只把这个当成一个字段理解就可以了。
另外你这个CASE WHEN这么复杂的写没什么意义啊,直接用ISNULL(第二字段,第一字段),(ORACLE中使用NVL(第二字段,第一字段))这个完全可以代替你的case when了
您说的传值,怎么讲?
where条件这些都是可以正常使用的
where (case when 第二字段 is not null then 第二字段 else 第一字段 end) = 值
或者where ISNULL(第二字段,第一字段) = 值
就这么正常使用就可以了
另外你这个CASE WHEN这么复杂的写没什么意义啊,直接用ISNULL(第二字段,第一字段),(ORACLE中使用NVL(第二字段,第一字段))这个完全可以代替你的case when了
您说的传值,怎么讲?
where条件这些都是可以正常使用的
where (case when 第二字段 is not null then 第二字段 else 第一字段 end) = 值
或者where ISNULL(第二字段,第一字段) = 值
就这么正常使用就可以了
追问
where (case when 第二字段 is not null then 第二字段 else 第一字段 end) = 5
可以这样写吗
追答
可以的,但是注意类型匹配。你的 = 5是数字类型,那么要求前边的第一字段第二字段都得是数字。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询