0

dbテーブルから列を動的に選択し、それをselectステートメントの列として使用するスクリプトを作成しました。ただし、「Selectの近くの構文が正しくありません」というエラーが発生しました。誰かアイデアがありますか?

Table_Sample_Table
ColumnName-SqlColumnName

SqlColumnName Values 
'Salary'
Age
Name
Address

table_to_query_the_data
Columns consist of
Salary
Age
Name
Address

Sample Query
SET @x='Select ' + SELECT STUFF((SELECT ',' + SqlColumnName
            FROM sample_table
            WHERE SqlColumnName ='Salary'
            FOR XML PATH('')) ,1,1,'') AS Txt + 'from table_to_query_the_data'
4

1 に答える 1

1

表はあまり明確ではありませんが、次のようにSET @xすべきだと思います。

SET @x= 'SELECT ' + STUFF((SELECT ',' + SqlColumnName
         FROM sample_table
         WHERE SqlColumnName = 'Salary'
         FOR XML PATH('')) ,1,1,'')   + ' FROM table_to_query_the_data'

[]または、列名を次のようにラップすることをお勧めします[col1],[col2],..

SET @x= 'SELECT ' + STUFF((SELECT '],[' + SqlColumnName
         FROM sample_table
         WHERE SqlColumnName = 'Salary'
         FOR XML PATH('')) ,1,2,'')  + '] FROM table_to_query_the_data'
于 2013-03-06T11:00:17.877 に答える