- - PR -
SQL文の連結
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-01-09 17:34
こんばんは。
SQLServer2005のSQL文について1つ教えて下さい。 SQL文をループ処理で連結させたいのですが どうしてもうまくいきません。 @CNT int, @SQL varchar(100), @SQL2 varchar(5000) SET @CNT = 1 WHILE @CNT < 3 BEGIN SET @SQL = 'AA AS BB,' SET @SQL2 = @SQL2 + @SQL SET @CNT = @CNT + 1 END として@SQL2は 'AA AS BB,AA AS BB' としたいのです。 実際には@CNTの値をBBの後につけるのですが。 'AA AS BB1,AA AS BB2'とです。 このようなことは可能なのでしょうか? |
|
投稿日時: 2009-01-09 17:49
最初にSET @SQL2 = ''を入れておかないと、NULLに何を足してもNULLになります。
まずはここから。 |
|
投稿日時: 2009-01-09 18:03
ありがとうございます。
1歩前進しました。 もう少しお願いします。 DECLARE @CNT int, @SQL varchar(100), @SQL2 varchar(5000) SET @CNT = 1 SET @SQL = '' WHILE @CNT < 20 BEGIN SET @SQL = @SQL + 'AA AS BB' + LTRIM(@CNT) + ',' SET @CNT = @CNT + 1 END SELECT @SQL としましたが10番目までしかSELECTで表示されません。 結果を確認したいのですが表示はできないのでしょうか? |
|
投稿日時: 2009-01-09 18:09
こんにちは
@SQL varchar(100) では足りないのでは? |
|
投稿日時: 2009-01-09 18:32
すいません。
DECLARE @CNT int, @SQL varchar(5000) SET @CNT = 1 SET @SQL = '' WHILE @CNT < 30 BEGIN SET @SQL = @SQL + 'AA AS BB' + LTRIM(@CNT) + ',' SET @CNT = @CNT + 1 END SELECT @SQL の間違いです。 でもこれだと24までしか表示されません・・ どうしてなのでしょう? |
|
投稿日時: 2009-01-09 18:59
「表示されない」というのは、Management Studioでの実行結果のことでしょうか?
もし、「結果をテキストに表示」で実行しているなら、オプションに「各列に表示される最大文字数」というのがあるので増やしてください。 |
|
投稿日時: 2009-01-09 19:36
よっしーさん、ありがとうございます。
|
1