0
誰かがこの問題を解決するのに役立つことがありますか?私はvarchar
に名前をキャストしようとした他の列UNPIVOTリストに指定 は、UNPIVOTリストに指定されている他の列のタイプと競合します
のタイプを持つ列「名前」紛争の
タイプを言ってエラーになっていないが、何もしています働いた。
;with hd (id, name, parentid, category) as ( select CAPABILITY_COMPONENT_ID id, CAPABILITY_COMPONENT_NAME name, CAPABILITY_PARENT_ID as parentid, 1 as category from [dbo].[TDM_FCT_CPBLITY] where CAPABILITY_PARENT_ID = -1 union all select t1.CAPABILITY_COMPONENT_ID, t1.CAPABILITY_COMPONENT_NAME, t1.CAPABILITY_PARENT_ID, hd.category +1 from [dbo].[TDM_FCT_CPBLITY] t1 inner join hd on t1.CAPABILITY_PARENT_ID = hd.id ) select category categoryNumber into #temp from hd DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) select @cols = STUFF((SELECT distinct ',' + quotename('cat_'+cast(categoryNumber as varchar(10))+'_'+col) from #temp cross apply (select 'id' col union all select 'name' col) src FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query = ';with hd (id, name, parentid, category) as ( select CAPABILITY_COMPONENT_ID as id, CAPABILITY_COMPONENT_NAME as name, CAPABILITY_PARENT_ID as parentid, 1 as category from [dbo].[TDM_FCT_CPBLITY] where CAPABILITY_PARENT_ID = -1 union all select t1.CAPABILITY_COMPONENT_ID, t1.CAPABILITY_COMPONENT_NAME, t1.CAPABILITY_PARENT_ID, hd.category +1 from [dbo].[TDM_FCT_CPBLITY] t1 inner join hd on t1.CAPABILITY_PARENT_ID = hd.id ), unpiv as ( select value, ''cat_''+cast(category as varchar(5))+''_''+ col col_name from ( select cast(id as varchar(17)) id, name, parentid, category from hd ) src unpivot ( value for col in (id, name) ) un ) select '[email protected]+' from unpiv pivot ( max(value) for col_name in ('[email protected]+') ) piv' execute(@query) drop table #temp
一つの理由** SO * [ここに詳細を見つける](HTTP ://stackoverflow.com/help/on-topic) – Shnugo
CREATE TABLEステートメントといくつかの挿入値を追加できますか? – McNets
最後の@query文だけを引用符なしで表示するように提案できますか? – McNets