0
我對SQL查詢不是很熟悉。最近我一直試圖建立使用SQL Server的unpivot
功能的查詢,但我現在面臨一個錯誤,指出:面向SQL中列數據類型的困難Unpivot查詢
的類型與在UNPIVOT列表中指定的其他 列的類型列「U_ItemModality」的衝突。
這裏是我的查詢:
select
cast(unpvt.ItemCode collate database_default AS VARCHAR(30)) as ItemCode,
cast(unpvt.attribute collate database_default AS VARCHAR(30)) as attribute,
cast(unpvt.value collate database_default AS VARCHAR(30)) as value
from [OITM]
unpivot (
value for attribute in (U_Mfg_Part_Num, U_Part_Descriptor, U_ItemModality)
) unpvt
inner join [@AECTRANDATA] as WI
on unpvt.ItemCode = WI.U_ObjectKeyValue
inner join OITM AS IM
on WI.U_ObjectKeyValue = IM.ItemCode
where
WI.U_ObjectType ='4'
在此查詢,如果我刪除u_itemmodality
它將運行。其他兩列的大小爲100
字符,但此列的大小爲30
字符。
如何克服這種情況?
我還沒有測試過上面的查詢,我也不熟悉'UNPIVOT'語法。謹慎行事。 – 2015-04-01 08:19:21
請注意,如果外部選擇的CAST(... AS VARCHAR(30))長度超過30個字符,它將截斷您的文本。 – mheptinstall 2015-04-01 08:22:48
@mheptinstall,很好。爲了避免截斷,長度應該是'100'。 – 2015-04-01 08:23:35