SQL Server:Unpivot在列到行上具有空格和特殊字符
我正在尝试在SQLServer2008中将列解压到行 我希望行值中有空格和特殊字符(从列转置) 一种方法是将EmpName替换为“Employee\u Name”,然后在中选择do aSQL Server:Unpivot在列到行上具有空格和特殊字符,sql,sql-server,unpivot,Sql,Sql Server,Unpivot,我正在尝试在SQLServer2008中将列解压到行 我希望行值中有空格和特殊字符(从列转置) 一种方法是将EmpName替换为“Employee\u Name”,然后在中选择do aReplace(Title,'.''.'')。但我有很多特别的地方需要解决。有什么办法可以解决这个问题吗 下面的查询无法工作,因为select语句中的选定值与我在Unpivot下使用的名称不同 Select Title, Value from (Select Top 1 E
Replace(Title,'.''.'')
。但我有很多特别的地方需要解决。有什么办法可以解决这个问题吗
下面的查询无法工作,因为select语句中的选定值与我在Unpivot下使用的名称不同
Select
Title, Value
from
(Select Top 1
EmpName AS 'Employee Name', EmpSalary AS 'Employee Salary**', Test As 'Test: !'
From
Emp
WHERE EmpNo ='1234') p
Unpivot
(Value For Title In (EmpName, EmpSalary, Test)) As unpvt;
尝试使用交叉应用
SELECT Title, Value
FROM Emp
CROSS APPLY (
VALUES
('Employee Name', EmpName),
('Employee Salary**', EmpSalary),
('Test: !', Test)
) upiv (Title, Value)
WHERE EmpNo ='1234'
或使用UNPIVOT
SELECT Title, Value
FROM (
SELECT [Employee Name] = EmpName, [Employee Salary**] = EmpSalary, [Test: !] = Test
FROM Emp
WHERE EmpNo ='1234'
) tbl
UNPIVOT(
Value FOR
Title IN ([Employee Name], [Employee Salary**], [Test: !])
) upiv