Sql server 2008 查看以计数列并将值从单行转换为多行
在SQL Server 2008中,我有一个表Sql server 2008 查看以计数列并将值从单行转换为多行,sql-server-2008,view,Sql Server 2008,View,在SQL Server 2008中,我有一个表T,我需要创建一个视图,将每行的结果转换为多行。下面是目标视图的一个示例 请帮忙 当前表T EmpID EmpName State City --------------------------------- 1234 aaaa NY NY 6789 bbbb FL Orlando 目标视图: EmpID ColumnName ColumnValue ----------------
T
,我需要创建一个视图,将每行的结果转换为多行。下面是目标视图的一个示例
请帮忙
当前表T
EmpID EmpName State City
---------------------------------
1234 aaaa NY NY
6789 bbbb FL Orlando
目标视图:
EmpID ColumnName ColumnValue
-----------------------------------
1234 EmpName aaaa
1234 State NY
1234 City NY
6789 EmpName bbbb
6789 State FL
6789 City Orlando
然后,当您实际从该视图中选择时,提供排序:
SELECT t.EmpID, t.ColumnName, t.ColumnValue
FROM yourView t
ORDER BY t.EmpID,
CASE WHEN t.ColumnName = 'EmpName' THEN 1
WHEN t.ColumnName = 'State' THEN 2
WHEN t.ColumnName = 'City' THEN 3 END
然后,当您实际从该视图中选择时,提供排序:
SELECT t.EmpID, t.ColumnName, t.ColumnValue
FROM yourView t
ORDER BY t.EmpID,
CASE WHEN t.ColumnName = 'EmpName' THEN 1
WHEN t.ColumnName = 'State' THEN 2
WHEN t.ColumnName = 'City' THEN 3 END
我得到错误“ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML”@AHS I updated my answer。通常情况下,视图不能使用排序依据。相反,请在实际选择时提供所需的顺序。I'm get error“ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML”@AHS I updated my answer。通常情况下,视图不能使用排序依据。相反,在实际选择时提供所需的订单。