select
<include refid="AlarmStatistics_List" />
from (
selectvehicle.vehicleid,vehicle.Platenumber,
COUNT(devicerunning.deviceid)Total,
sum(decode(Warningtypeid,1,1,2,1,3,1,0))TypeA,
sum(decode(Warningtypeid,4,1,5,1,6,1,7,1,8,1,9,1,10,1,0))TypeB,
sum(decode(Warningtypeid,11,1,12,1,13,1,0))TypeC,
sum(decode(Warningtypeid,1,1,0))as Type1,
sum(decode(Warningtypeid,2,1,0))as Type2,
sum(decode(Warningtypeid,3,1,0))as Type3,
sum(decode(Warningtypeid,4,1,0))as Type4,
sum(decode(Warningtypeid,5,1,0))as Type5,
sum(decode(Warningtypeid,6,1,0))as Type6,
sum(decode(Warningtypeid,7,1,0))as Type7,
sum(decode(Warningtypeid,8,1,0))as Type8,
sum(decode(Warningtypeid,9,1,0))as Type9,
sum(decode(Warningtypeid,10,1,0))as Type10,
sum(decode(Warningtypeid,11,1,0))as Type11,
sum(decode(Warningtypeid,12,1,0))as Type12,
sum(decode(Warningtypeid,13,1,0))as Type13
以上代碼sum函式中的decode函式在mysql沒有,所以試著改成sum(case when Warningtypeid=1 then 1······when Warningtypeid=3 then 1 else 0 end)TypeA, 報格式錯誤,請問應該怎么改
uj5u.com熱心網友回復:
參考 樓主 qq_41606102 的回復: select
<include refid="AlarmStatistics_List" />
from (
selectvehicle.vehicleid,vehicle.Platenumber,
COUNT(devicerunning.deviceid)Total,
sum(decode(Warningtypeid,1,1,2,1,3,1,0))TypeA,
sum(decode(Warningtypeid,4,1,5,1,6,1,7,1,8,1,9,1,10,1,0))TypeB,
sum(decode(Warningtypeid,11,1,12,1,13,1,0))TypeC,
sum(decode(Warningtypeid,1,1,0))as Type1,
sum(decode(Warningtypeid,2,1,0))as Type2,
sum(decode(Warningtypeid,3,1,0))as Type3,
sum(decode(Warningtypeid,4,1,0))as Type4,
sum(decode(Warningtypeid,5,1,0))as Type5,
sum(decode(Warningtypeid,6,1,0))as Type6,
sum(decode(Warningtypeid,7,1,0))as Type7,
sum(decode(Warningtypeid,8,1,0))as Type8,
sum(decode(Warningtypeid,9,1,0))as Type9,
sum(decode(Warningtypeid,10,1,0))as Type10,
sum(decode(Warningtypeid,11,1,0))as Type11,
sum(decode(Warningtypeid,12,1,0))as Type12,
sum(decode(Warningtypeid,13,1,0))as Type13
以上代碼sum函式中的decode函式在mysql沒有,所以試著改成sum(case when Warningtypeid=1 then 1······when Warningtypeid=3 then 1 else 0 end)TypeA, 報格式錯誤,請問應該怎么改
case when end結構mysql中應該也可以,但你也可以if試試。
select case when c1=1 then 'aa' when c1=2 then 'bb' when c1=3 then 'cc' else 'dd' end from t1;
select if(c1=1,'aa',if(c1=2,'bb',if(c1=3,'cc','dd'))) from t1;
uj5u.com熱心網友回復:
參考 1 樓 lhdz_bj 的回復: Quote: 參考 樓主 qq_41606102 的回復:
select
<include refid="AlarmStatistics_List" />
from (
selectvehicle.vehicleid,vehicle.Platenumber,
COUNT(devicerunning.deviceid)Total,
sum(decode(Warningtypeid,1,1,2,1,3,1,0))TypeA,
sum(decode(Warningtypeid,4,1,5,1,6,1,7,1,8,1,9,1,10,1,0))TypeB,
sum(decode(Warningtypeid,11,1,12,1,13,1,0))TypeC,
sum(decode(Warningtypeid,1,1,0))as Type1,
sum(decode(Warningtypeid,2,1,0))as Type2,
sum(decode(Warningtypeid,3,1,0))as Type3,
sum(decode(Warningtypeid,4,1,0))as Type4,
sum(decode(Warningtypeid,5,1,0))as Type5,
sum(decode(Warningtypeid,6,1,0))as Type6,
sum(decode(Warningtypeid,7,1,0))as Type7,
sum(decode(Warningtypeid,8,1,0))as Type8,
sum(decode(Warningtypeid,9,1,0))as Type9,
sum(decode(Warningtypeid,10,1,0))as Type10,
sum(decode(Warningtypeid,11,1,0))as Type11,
sum(decode(Warningtypeid,12,1,0))as Type12,
sum(decode(Warningtypeid,13,1,0))as Type13
以上代碼sum函式中的decode函式在mysql沒有,所以試著改成sum(case when Warningtypeid=1 then 1······when Warningtypeid=3 then 1 else 0 end)TypeA, 報格式錯誤,請問應該怎么改
case when end結構mysql中應該也可以,但你也可以if試試。
select case when c1=1 then 'aa' when c1=2 then 'bb' when c1=3 then 'cc' else 'dd' end from t1;
select if(c1=1,'aa',if(c1=2,'bb',if(c1=3,'cc','dd'))) from t1;
謝謝!嘗試了你的if陳述句可以了,之前也寫過if陳述句,和你的對比之后發現出錯原因在于嵌套沒打上括號(我之前寫的是if eslif else,發現也報格式錯誤~)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/23191.html
標籤:MySQL
上一篇:mongoDB對某個欄位進行聚合操作,但該欄位為string型別該怎么解決?不能修改資料
下一篇:請教如何批量更新mysql某一列的值