我有两个表,tblColumnNames
和tblValues
具有以下结构和示例值:变换行转换成列MS SQL
tblColumnNames - has two columns with names 'id' and 'ColumnName'
and following example data:
-------------------------------
id ColumnName
0 columnName1
1 columnName2
2 columnName3
tblValues has three columns 'id', 'ColumnId' and 'Value' with following example data:
-------------------------------
id ColumnId Value
51 0 177
52 1 abcde
53 2 123
54 0 40
55 1 xyz
56 2 321
ColumnId
对应于id
在tblColumnNames
表。
如何连接这两个表,这样所产生的列是从tblValues
值列采取tblColumnNames
和各自的值的行:
result
------------------------------
colummnName1 columnName2 columnName3
177 abcde 123
40 xyz 321
编辑:中行tblColumnNames
数量将不断变化。
SQL查询不具有动态列名。如果你想拥有动态名称,你需要使用动态SQL。 –
可能的重复[有效地将行转换为SQL Server中的列](https://stackoverflow.com/questions/15745042/efficiently-convert-rows-to-columns-in-sql-server) –
@AlbertoMartinez该问题正在寻找用于替代PIVOT。我的问题是寻找一个通用的解决方案。 – astralmaster