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];