初めまして。T-SQLのカーソル文について質問です。
T-SQLのカーソル文はSELECTした結果を1行ずつ取り出し、
対応した変数に格納することができると思いますが、
SELECTした結果が2行あり2行分のデータを変数に格納するには
どうすればよろしいでしょうか?
例を示しますが、
FETCH NEXT~のところからINTOで変数にセットしていますが、
これだと1行分のデータを変数にセットして1行ずつ処理をしていると
考えます。そうではなくて、
ここで2行分入れてからそれを基に判定処理を作成したいと考えております。
SQL-Serverは2014年のものを使用しております。
皆様の力をお貸しください。よろしくお願いいたします。
T
1--カーソルの値を取得する変数宣言 2DECLARE @W_COL1 varchar(50) 3DECLARE @W_COL2 decimal(18,0) 4 5--カーソル定義 6DECLARE CUR_AAA CURSOR FOR 7 SELECT COL1 8 ,COL2 9 FROM TAB_A 10 WHERE TAB_A.COL1 = <条件値> 11 12--カーソルオープン 13OPEN CUR_AAA; 14 15--最初の1行目を取得して変数へ値をセット 16FETCH NEXT FROM CUR_AAA 17INTO @W_COL1,@W_COL2; 18 19--データの行数分ループ処理を実行する 20WHILE @@FETCH_STATUS = 0 21BEGIN 22 23 -- ========= ループ内の実際の処理 ここから=== 24 25 INSERT INTO TAB_B 26 VALUES ( 27 @W_COL1 28 ,@W_COL2 29 ) 30 31 -- ========= ループ内の実際の処理 ここまで=== 32 33 34 --次の行のデータを取得して変数へ値をセット 35 FETCH NEXT FROM CUR_AAA 36 INTO @W_COL1,@W_COL2; 37 38END 39 40--カーソルを閉じる 41CLOSE CUR_AAA; 42DEALLOCATE CUR_AAA;

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/15 01:35
2018/01/15 01:59
2018/01/15 02:06
2018/01/15 02:16
2018/01/15 04:04