2014-07-01 153 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