SELECT DISTINCT -- 对大量出现的重复数据进行减选
A.code, -- 联查表里某字段
(CASE WHEN item_name_ys IS NULL THEN item_name ELSE item_name_ys+'('+item_name +')' END) as item_name , --用case when 条件 then 值 else 另外的值 end 来编辑字段
STUFF((SELECT ','+
(CASE WHEN build_name_ys IS NULL THEN build_name ELSE build_name_ys+'('+build_name +')' END) -- 这里不要as 个字段名,因为FOR XML PATH('')会添加<字段名><\字段名>
FROM dbo.build_info B where B.build_item_code=A.build_item_code -- 与外层的A字段进行等值比较
FOR XML PATH('')),1,1,'') as build_name -- 与外层的A字段进行等值比较后 字段相同的要用FOR XML PATH('')合为一个值并用 STUFF('值',1,1,'')来把值得第一位去掉
FROM
enter_info
join
item_info on enter_code=item_dev_code
join
build_info A on item_code=build_item_code where item_district in('0001','0002')
使用 STUFF ( character_expression , start , length , replaceWith_expression ) 进行字段值删减
使用 FOR XML PATH('') 进行多行结果合并生成并拼接成一个值