2014-07-01 104 views
0

我做了unpivot这样的:“日期”冲突

select  
--ID, 
Value 
from dbo.[staging] 
unpivot 
(
    Value 
    for col in ([ Code] 
    , [Date] 
    ,[ Registered Name] 
    ,[Entity Name] 
    ,[transactions] 
    ,[ PID]) 

) un 

我收到提示:

“日期”与冲突UNPIVOT列表中指定的其他列的类型。

注意:我的登台表具有datetime类型的日期列。

我该如何解决这个错误? Pl帮助。

回答

3

通常情况下,您会在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; 
+0

四处错误:“从”关键字和附近有语法错误“T”附近有语法错误。 – bapi

+0

修改了上述查询。它应该是“convert(nvarchar(255),...”。谢谢。 – bapi