0
누군가가 나이 문제를 해결하는 데 도움이 수 있습니까? 나는충돌
내가
varchar
에 이름을 캐스팅하기 위해 노력했다
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
수 있습니다 downvotes 및/또는 폐쇄 요청에 대한 한 가지 이유, 즉 * 왜 내 코드가 작동하지? * 명시 적에서 첫 번째 점으로 이름 * 무엇 ** ** SO * ([여기에서 자세한 내용을 확인할]하지 HTTP : //stackoverflow.com/help/on-topic) – Shnugo
당신은 TABLE 문 일부 삽입 가치를 창출 추가 할 수 있을까요? – McNets
따옴표없이 마지막 @query 문만 표시하도록 제안 할 수 있습니까? – McNets