単刀直入、本記事のコアコンテンツ:SQLserverでselectやupdateでcase-when-thenの書き方です。
struts+ibatis開発であるテーブルから最大のアイテム値を取得、しかも場合よって違うアイテムの最大値を取得するSQLです。
SELECT
CASE
WHEN #flag# = 1 THEN max(tableItem1)
WHEN #flag# = 2 THEN max(tableItem2)
WHEN #flag# = 3 THEN max(tableItem3)
WHEN #flag# = 4 THEN max(tableItem4)
WHEN #flag# = 5 THEN max(tableItem5)
END maxValue
FROM mytable
WHERE seq= #seq:INTEGER#
また、場合よってあるテーブルの違うアイテムを更新するSQLです。
UPDATE [mytable]
SET
tableitem1 =
CASE WHEN #flag# = 1 THEN #itemValue# +1
ELSE tableitem1
END ,
tableitem2 =
CASE WHEN #flag# = 2 THEN #itemValue# +1
ELSE tableitem2
END ,
tableitem3 =
CASE WHEN #flag# = 3 THEN #itemValue# +1
ELSE tableitem3
END ,
tableitem4 =
CASE WHEN #flag# = 4 THEN #itemValue# +1
ELSE tableitem4
END ,
tableitem5 =
CASE WHEN #flag# = 5 THEN #itemValue# +1
ELSE tableitem5
END
WHERE seq = #seq:INTEGER#
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
zanmai @2016年03月31日
» ①②③④の順で設定できるはず。…