結論
SELECT
hoge, /*1かどうかの確認用、fugaだけ欲しければ不要*/
CASE WHEN hoge = '1'
THEN -1 * fuga
ELSE fuga
END AS fuga
FROM test_table
;
何をしているのか
test_table内の項目「hoge」が'1'の時、
同テーブル内の項目「fuga」の値に「-1」を掛ける(*で掛ける)ことで先頭に「-」を付ける。
実際の動き
既存のtest_tableの中身
hoge | fuga |
---|---|
1 | 1100 |
0 | 1000 |
結論のSELECTを実行
hoge | fuga |
---|---|
1 | -1100 |
0 | 1000 |
「fuga」がテーブル定義上、テーブル定義の最大桁を超過しても「-」は付く。
(最大桁が「4」であっても上記の実際の動きのように「-」が付く)