规则:
根据“Unit”字段作为条件,对“MonitorType”字段赋值,以对数据做一下汇总,但是发现有的记录汇总起来了,有的没有汇总起来,这是为什么呢?
SQL:
update SpecialDataSumByHour set MonitorType=(case Unit when 'PPM' then 'CM' when 'g/Kg' then 'HM' when '℃' then 'TM' when 'kPa' then 'AM' when 'm3/h' then 'FW' when 'KJ' then 'EM' end)
汇总之后:select * from SpecialDataSumByHour where MonitorType is NULL 结果如下图
为什么呢???为什么有的没有赋值呢?
------解决方案--------------------
------解决方案--------------------
- SQL code
update SpecialDataSumByHour set MonitorType=(case Unit when 'PPM' then 'CM' when 'g/Kg' then 'HM' when '℃' then 'TM' when 'kPa' then 'AM' when 'm3/h' then 'FW' when 'KJ' then 'EM' else '123'end)--加个ELSE 这样可以定位 Unit 的值是??,把漏掉的这个??值加到 WHEN THNE 里
------解决方案--------------------
- SQL code
update SpecialDataSumByHour set MonitorType=(case Unit when N'PPM' then 'CM' when N'g/Kg' then 'HM' when N'℃' then 'TM' when N'kPa' then 'AM' when N'm3/h' then 'FW' when N'KJ' then 'EM' else '未定义' end)
------解决方案--------------------
update SpecialDataSumByHour
set MonitorType=(case Unit when N'PPM' then 'CM'
when N'g/Kg' then 'HM'
when N'℃' then 'TM'
when N'kPa' then 'AM'
when N'm3/h' then 'FW'
when N'KJ' then 'EM'
else '未定义' end)
正如5楼所做的,你应该把格式写得清楚点。不然不光是我们看得不舒服,你自己也一样,这是编程习惯问题。