我有这个查询,运行良好,没有问题!
SELECT [Q].sHost
, LEFT([Q].sDescription, Len([Q].sDescription) - 1) AS [sDescription]
FROM (
SELECT DISTINCT [Q2].sHost
, (
SELECT CONVERT(NVARCHAR(MAX), [Q1].[sDescription]) + N', ' AS [text()]
FROM (
SELECT (
CASE
WHEN (CHARINDEX('\', [sInstance]) = 0)
THEN [sInstance]
ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
END
) AS sHost
, [sDescription]
FROM [db_group].[dbo].[instanceCommentsList]
) AS [Q1]
WHERE ([Q1].sHost = [Q2].sHost)
FOR XML PATH('')
) [sDescription]
FROM (
SELECT (
CASE
WHEN (CHARINDEX('\', [sInstance]) = 0)
THEN [sInstance]
ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
END
) AS sHost
, [sDescription]
FROM [db_group].[dbo].[instanceCommentsList]
) AS [Q2]
) AS [Q]将此查询保存为视图时,将得到以下错误
在WHERE子句“(”)中出现错误。 在“=”附近的WHERE子句中出现错误。不能 要解析查询文本,请执行以下操作。
不知道问题在哪里!
它可以保存任何方式,而且可以工作,我可以在一个简单的select查询中使用它,但是我在视图的名称下得到了一条红线,当我把鼠标放到上面时,我得到了以下消息
对象名无效..。
如果我在一个更复杂的查询中使用它,它根本不起作用。
编辑:?
在阅读Cannot get FOR XML PATH to work后感谢Cannot get FOR XML PATH to work的评论
我修好了,但还是有一个错误!
在WHERE子句“(”)中出现错误。 无法解析查询文本。
这是固定代码:
SELECT [Q].sHost
, LEFT([Q].sDescription, Len([Q].sDescription) - 1) AS [sDescription]
FROM (
SELECT DISTINCT [Q2].sHost
, (
SELECT CONVERT(VARCHAR(MAX), [Q1].[sDescription]) + ', ' AS [text()]
FROM (
SELECT (
CASE
WHEN (CHARINDEX('\', [sInstance]) = 0)
THEN [sInstance]
ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
END
) AS sHost
, [sDescription]
FROM [db_group].[dbo].[instanceCommentsList]
) AS [Q1]
WHERE ([Q1].sHost = [Q2].sHost)
FOR XML PATH(''), type
).value('.', 'varchar(max)') as [sDescription]
FROM (
SELECT (
CASE
WHEN (CHARINDEX('\', [sInstance]) = 0)
THEN [sInstance]
ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
END
) AS sHost
, [sDescription]
FROM [db_group].[dbo].[instanceCommentsList]
) AS [Q2]
) AS [Q]发布于 2015-10-20 15:51:26
尝试WHERE Q1.sHost = Q2.sHost而不是WHERE (Q1.sHost = Q2.sHost)。
https://stackoverflow.com/questions/17275162
复制相似问题