質問するログイン新規登録

質問編集履歴

4

ソースコード修正

2018/01/15 08:28

投稿

dera
dera

スコア28

title CHANGED
File without changes
body CHANGED
@@ -32,9 +32,6 @@
32
32
  DECLARE @W_COL1 varchar(50)
33
33
  DECLARE @W_COL2 decimal(18,0)
34
34
 
35
- DECLARE @W2_COL1 varchar(50)
36
- DECLARE @W2_COL2 decimal(18,0)
37
-
38
35
  --カーソル定義
39
36
  DECLARE CUR_AAA CURSOR FOR
40
37
  SELECT COL1
@@ -47,7 +44,6 @@
47
44
 
48
45
  --最初の1行目を取得して変数へ値をセット
49
46
  FETCH NEXT FROM CUR_AAA INTO @W_COL1,@W_COL2;
50
- FETCH NEXT FROM CUR_AAA INTO @W2_COL1,@W2_COL2;
51
47
 
52
48
  --データの行数分ループ処理を実行する
53
49
  WHILE @@FETCH_STATUS = 0
@@ -62,7 +58,6 @@
62
58
 
63
59
  --次の行のデータを取得して変数へ値をセット
64
60
  FETCH NEXT FROM CUR_AAA INTO @W_COL1,@W_COL2;
65
- FETCH NEXT FROM CUR_AAA INTO @W2_COL1,@W2_COL2;
66
61
 
67
62
  END
68
63
    2.配列結果のうち、@W_COL1を

3

もう少し具体的なものを言葉で書きました。。

2018/01/15 08:27

投稿

dera
dera

スコア28

title CHANGED
File without changes
body CHANGED
@@ -55,7 +55,7 @@
55
55
 
56
56
  -- ========= ループ内の実際の処理 ここから===
57
57
 
58
- ここにSELECT結果を配列としてSETしたい
58
+ 1.ここにSELECT結果を配列としてSET
59
59
 
60
60
  -- ========= ループ内の実際の処理 ここまで===
61
61
 
@@ -65,6 +65,10 @@
65
65
  FETCH NEXT FROM CUR_AAA INTO @W2_COL1,@W2_COL2;
66
66
 
67
67
  END
68
+   2.配列結果のうち、@W_COL1を
69
+ IF文の条件として使用する。
70
+ 3.IF分の中でさらにSELECT文を発行し、
71
+     WHERE句として使用する
68
72
 
69
73
  --カーソルを閉じる
70
74
  CLOSE CUR_AAA;

2

C#でのイメージを追加しました。

2018/01/15 08:26

投稿

dera
dera

スコア28

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,19 @@
14
14
  皆様の力をお貸しください。
15
15
 
16
16
  SQLSERVERは2014年です。
17
+
18
+ 追記:C#ですと
19
+ ```C#
20
+ //初期宣言
21
+ var list = new list<string>()
22
+
23
+ for(i = 0 i <= 9; i++){
24
+ list.add(i.ToString());
25
+ }
26
+ ```
27
+ イメージ的にはこんな感じかなと。
28
+ このようなことをT-SQLでできないかな・・。
29
+
17
30
  ```T-SQL
18
31
  --カーソルの値を取得する変数宣言
19
32
  DECLARE @W_COL1 varchar(50)

1

ループ内の処理を勘違いしていたので、修正しました。

2018/01/15 08:18

投稿

dera
dera

スコア28

title CHANGED
File without changes
body CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  -- ========= ループ内の実際の処理 ここから===
44
44
 
45
- ここSELECT文発行(略)
45
+ ここSELECT結果を配列としてSETしたい
46
46
 
47
47
  -- ========= ループ内の実際の処理 ここまで===
48
48