需要注意:如果字段为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'
红色部分为两句的不同。需要注意的是:如果case后面字段名字加了单引号就会一直显示else的内容,也就是说case后直接加上字段名称,不允许在字段上加单引号。