[SQL SERVER] 変数を使用したテーブルの利用方法
ちょっと便利なSQLを紹介します。
変数を使用したテーブルです。テーブル変数とでもいうのかな?
ちょっとしたテストで良く使っています。
覚えておくととっても便利です。
ブラウザで表示すると、シングルコーテションがおかしくなるかも。
コピペするときには修正してください。
--変数テーブルの作成&INSERT declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int) insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0) insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','2',1) insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1) insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1) declare @tbl2 table(a_cd char(9), b_kbn char(1), c_kbn int) insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000001','1',0) insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000010','2',1) insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000020','2',1) insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000030','2',1) --変数テーブルを使用する例(SELECT) select * from @tbl1 S1 join @tbl2 S2 on S1.A_CD=S2.a_cd and S2.b_kbn=S2.b_kbn --変数テーブルの値を更新する(UPDATE) update @tbl1 set c_kbn+=1 --確認用SELECT select * from @tbl1 --変数テーブルの値を削除する(DELETE) delete from @tbl1 where b_kbn='1' --確認用SELECT select * from @tbl1
もちろん変数なので同じセッション中のみ有効です。
また、セッションが切れたら無くなります。