[英]sql how to add value by condition and put in specific column
這是表和表中的數據。
桌子:
id |value_total|value_1|value_2|value_3|value_4
1 | 100 | 50 | 0 | 0 | 50
2 | 200 | 0 | 150 | 50 | 0
3 | 300 | 100 | 200 | 0 | 0
4 | 400 | 100 | 200 | 0 | 100
我需要包含以下數據的表格。
願望結果:
id |value_total|value_1|value_2|value_3|value_4
1 | 100 | 0 | 0 | 0 | 100
2 | 200 | 0 | 0 | 200 | 0
3 | 300 | 0 | 300 | 0 | 0
4 | 400 | 0 | 0 | 0 | 400
您想將總值放在最后一個非零列中嗎?
select id, value_total,
(case when value_2 = 0 and value_3 = 0 and value_4 = 0 and value_1 > 0
then value_total else 0
end) as value_1,
(case when value_3 = 0 and value_4 = 0 and value_2 > 0
then value_total else 0
end) as value_2,
(case when value_4 = 0 and value_3 > 0
then value_total else 0
end) as value_3,
(case when value_4 > 0 then value_total else 0 end)
from t;
這種情況有很多方法,下面提到了其中一種方法,請看一看。
UPDATE TABLE
SET value_1 = 0
,value_2 = CASE
WHEN id = 3
THEN 300
ELSE 0
END
,value_3 = CASE
WHEN id = 2
THEN 200
ELSE 0
END
,value_4 = CASE
WHEN id = 1
THEN 100
WHEN id = 4
THEN 400
ELSE 0
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.