ホーム » ブログ » SQLserverでselectやupdateでcase-when-thenの書き方
このエントリーをはてなブックマークに追加
@2014/01/22

スポンサーリンク
単刀直入、本記事のコアコンテンツ: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#


♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check