欢迎投稿

今日深度:

case when遇到空串转成0,case空串

case when遇到空串转成0,case空串


  需要注意:如果字段为varchar类型,when后的条件要加上引号
SELECT (CASE 'marital_status' WHEN 0 THEN '已婚' WHEN 1 THEN '未婚' ELSE 'WEIZHI' END) AS marital_status  FROM tj_archive WHERE id='D1407280006'


用上面的语句,如果marital_status为空串(而不是null)时,竟然查询的结果为“已婚”

最后更改正确结果为:

SELECT (CASE 'marital_status' WHEN '0' THEN '已婚' WHEN '1' THEN '未婚' ELSE 'WEIZHI' END)AS marital_status FROM tj_archive WHERE id='D1407280006'


红色部分为两句的不同。


SQL使用CASE WHEN 行转列为何会出现NULL值?

因为是男女分别统计,一般不这么用
select --avg(总分), avg(case when 性别='男' then 总分 else 0 END) AS '男生的平均成绩', avg(case when 性别='女' then 总分 else 0 END) AS '女生的平均成绩'from students--GROUP BY 性别--这个group by去掉你试试

 

怎才可以将case when放入where中

不能放在where里边,像你这样的,用子查询去查会比较容易select * from where 字段 in(select case when 字段>1 then 1 else 0 end from 表)
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2439.html NewsArticle case when遇到空串转成0,case空串 需要注意:如果字段为varchar类型,when后的条件要加上引号 SELECT (CASE marital_status WHEN 0 THEN 已婚 WHEN 1 THEN 未婚 ELSE WEIZHI END) AS marital_status FROM tj_archive WHE...
相关文章
    暂无相关文章
评论暂时关闭