我正在做这样的事情:
select
--ID,
Value
from dbo.[staging]
unpivot
(
Value
for col in ([ Code]
, [Date]
,[ Registered Name]
,[Entity Name]
,[transactions]
,[ PID])
) un
我收到错误:
"日期"与UNPIVOT列表中指定的其他列的类型冲突。
注意:我的登台表的日期列的类型为datetime。
如何重新发送此错误?帮助。
答案 0 :(得分:4)
通常,您会在unpivot
中添加其他列,例如标识符。但是问题的解决方案是使用子查询将列强制转换为varchar()
:
select --ID, Value
from (select s.*, convert(varchar(255), [date], 121) as datestr
from dbo.[staging]
) t
unpivot (Value for col in ([ Code], datestr, [ Registered Name], [Entity Name], [transactions], [ PID]
)
) un;