简单的写一下吧,这个坑是写脚本的时候时隔一月再次遇到的坑;
原语句如下:
select distinct
case when emergency is null then 'NULL'
else emergency
end as '紧急程度'
from Filteredupgradingplan
乍一看没有问题,但是在运行的时候出错了,因为 case when 后面的 ‘NULL’ 是 varchar 数据类型,而字段'emergency'在数据库里面是用INT数据存的编码,条件语句两条道路返回的数据不是同一个类型的数据。
所以要么用 convert(varchar(64), emergency) 替换else 后面的语句,要么换一个varchar类型的字段来处理数据。
总之,语句Case后面返回的值要和Else返回的值保持数据类型一致。