Sql server 无法在SQL Server中将XML路径与UNION ALL一起使用

Sql server 无法在SQL Server中将XML路径与UNION ALL一起使用,sql-server,xml,Sql Server,Xml,我使用了下面的代码来生成逗号分隔的值,在没有UNION ALL的情况下,这是完美的工作方式,但一旦我使用另一个SELECT应用UNION ALL,它就会显示类似XML的输出。查询如下所示: SELECT ISNULL(STUFF(( SELECT plant from ( SELECT DISTINCT ', ' + Plant as Plant FROM ASP_MstSKUPlantMapping SKUPM WHERE SKUID = '702953' AND Plant LIKE 'P

我使用了下面的代码来生成逗号分隔的值,在没有
UNION ALL
的情况下,这是完美的工作方式,但一旦我使用另一个SELECT应用
UNION ALL
,它就会显示类似XML的输出。查询如下所示:

SELECT ISNULL(STUFF((
SELECT plant from (
SELECT DISTINCT ', ' + Plant as Plant
FROM ASP_MstSKUPlantMapping SKUPM 
WHERE SKUID = '702953' AND Plant LIKE 'P%'
UNION ALL
SELECT DISTINCT ', ' + Plant as Plant
FROM ASP_MstSKUPlantMapping SKUPM 
WHERE SKUID = '702953' AND Plant LIKE 'S%'
) Temp

FOR XML PATH('')), 1, 2,''),'')
电流输出:

lant>, PN05</plant><plant>, PN10</plant>
编辑:如果我删除了
作为工厂
这个别名,那么它会显示一个错误:

No column name was specified for column 1 of 'Temp'.

我认为你不需要为这一切使用工会。
它来自同一个表,因此它只是WHERE子句要处理的内容。


这就是我所要搜索的,为
LIKE
子句使用多个条件!Thnks@PrashantPimpale试着用这个代替搜索
和(像植物一样的'[P]]'或像植物一样的'[S]]')
@PrashantPimpale有时人们忘记了像
一样的人不仅仅有
%
;-)
No column name was specified for column 1 of 'Temp'.
SELECT 
 ISNULL(STUFF((
    SELECT CONCAT(', ', Plant)
    FROM ASP_MstSKUPlantMapping SKUPM
    WHERE SKUID = '702953' AND Plant LIKE '[PS]%'
    GROUP BY Plant
    ORDER BY Plant
    FOR XML PATH('')
 ), 1, 2, ''),'') AS [Plants];