SQL Server 2005には、可変数の列を持つテーブルがあります。最初の2つは定数です。 私はテーブルの列の数を取得することができたので、何を数えるかを考えていますが、可変数の列を選択する方法はわかりません。ループで列を選択する
SELECT
DISTINCT
COUNT(*)
FROM
INFORMATION_SCHEMA.[COLUMNS]
WHERE
TABLE_NAME = 'SOME_TABLE'
AND
(COLUMN_NAME <> 'STATIC_COL1' AND COLUMN_NAME <> 'STATIC_COL2')
私は、各列を取得するためにwhileループを使用する必要があると推測しています。 ご協力いただければ幸いです。おかげさまで
編集: 私は、動的SQLのAFの提案@使用して終了(下記参照)、それを行うには
DECLARE @CMD AS VARCHAR(MAX)
SET @CMD = 'SELECT '
DECLARE @COL AS VARCHAR(MAX)
DECLARE COLUMN_CURSOR CURSOR FOR
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.[COLUMNS]
WHERE
TABLE_NAME = 'SOME_TABLE'
OPEN COLUMN_CURSOR
FETCH NEXT FROM COLUMN_CURSOR
INTO @COL
WHILE @@FETCH_STATUS = 0
BEGIN
IF @COL = 'STATIC_COL1'
BEGIN
SET @CMD = @CMD + @COL
END
FETCH NEXT FROM COLUMN_CURSOR
INTO @COL
SET @CMD = @CMD + ', CAST(' + @COL +' AS INT) AS ' + @COL
END
CLOSE COLUMN_CURSOR
DEALLOCATE COLUMN_CURSOR
SET @CMD = @CMD + ' FROM SOME_TABLE'
EXEC (@CMD)
"SQL Server 2005には、さまざまな数の列を持つテーブルがあります" - rly? –
あなたの最終目標は何かを明確にすることはできますか?あなたは各列の周りをループしたいのですが、目的は何ですか? – AdaTheDev
テーブルの生涯にわたる@マーク。おそらく... – AakashM