私の以前の答えは、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;コード> プレ>