2016-06-17 5 views
0

SQLクエリ結果で列に名前を付けるために変数を使用する方法はありますか?下の私の例は、 "不正な構文"エラーを示していますか?変数を使用してクエリ結果列に名前を付ける

declare @ColumnName varchar(100) = 'Column 1' 

Select CustomerNumber as @ColumnName 
    from Customers 
+0

あなたはSQLのどのような風味を使用していますか? SQLサーバー?アクセス? MySQL? –

+1

ほとんどの場合、このようなタスクには '動的SQ'Lが必要です。 –

+0

なぜなのですか?クライアントは、使用する列名をクライアントがどのように知っていると思われますか? –

答えて

1

一般に、SQLは、列エイリアスとして使用する変数の定義を処理しません。つまり、dynamic SQLを使用することに頼る必要があります。これには、クエリを作成してからsp_executesqlプロシージャを使用して手動で実行する必要があります。

次は、SQL Serverを使用して動的に実行し、既存のクエリの例です:

-- Define your variable 
DECLARE @ColumnName VARCHAR(100) = 'Column 1' 
-- Define your SQL query 
DECLARE @SQL NVARCHAR(200) = 'SELECT CustomerNumber AS ' + @ColumnName + ' FROM Customers' 
-- Execute your query dynamically 
EXEC sp_executesql @SQL 
+0

これはうまくいきました - ありがとう –

関連する問題