私の以前の答えは、mysql に対するものでした。それ以来、タグは質問で更新されているため、ここに sql-server-2008
のクエリがあります .
table_levels
の値から列のリストを作成します 、最後の 、
を削除します 、table_results
から結果を取得するためのクエリ文字列を作成します 、実行します。
DECLARE @listStr varchar(MAX) =(selectselectColumnName + ',' from table_levels where level =1 for xml path(''))DECLARE @query varchar(MAX) ='SELECT ' + LEFT(@ listStr, LEN(@listStr)-1) + ' FROM table_results'execute(@query)
プレ>前の回答。
mssql
で動作しますmysql のデモ を参照してください
GROUP_CONCAT
を使用table_levels
の値から文字列を作成するtable_results
から結果を取得するためのクエリ文字列を作成します。SET @listStr =( SELECT GROUP_CONCAT(selectColumnName) FROM table_levels where level =1);SET @query :=CONCAT('SELECT ', @listStr, ' FROM table_results'); PREPARE STMT FROM @query; EXECUTE STMT;コード> プレ>