Sql server 带括号的周围查询导致XML错误
当试图包装查询以进行进一步处理时,我只在查询周围加上括号,就出现了一个错误。请参阅下面的查询,如果我只是删除了包装括号,查询就会工作。但是当我使用括号时,我得到了这个错误: 关键字“for”附近的语法不正确 有人知道为什么会这样吗Sql server 带括号的周围查询导致XML错误,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,当试图包装查询以进行进一步处理时,我只在查询周围加上括号,就出现了一个错误。请参阅下面的查询,如果我只是删除了包装括号,查询就会工作。但是当我使用括号时,我得到了这个错误: 关键字“for”附近的语法不正确 有人知道为什么会这样吗 谢谢 在查询周围单独添加括号会导致错误,但如果在开始括号之前键入选择,代码将运行,这意味着您可以使用它进行进一步处理: if OBJECT_ID('A_POSITIONS') is not null drop table [dbo].[A_POSITIONS] c
谢谢 在查询周围单独添加括号会导致错误,但如果在开始括号之前键入
选择
,代码将运行,这意味着您可以使用它进行进一步处理:
if OBJECT_ID('A_POSITIONS') is not null
drop table [dbo].[A_POSITIONS]
create table [dbo].[A_POSITIONS]([ID] int,[Name] varchar(100))
insert into [dbo].[A_POSITIONS] values
(208418, 'one'),(208418, 'two'),(208418, 'three'),(208418, 'four'),(208418, 'five')
select
(
select '; ' + [NAME]
from (select a.[NAME] as 'NAME'
from [MS].[dbo].[A_POSITIONS] a
where a.ID = 208418
except
select top 1 b.[NAME]
from [MS].[dbo].[A_POSITIONS] b
where b.ID = 208418) as c
for XML PATH(''),TYPE
)
最后要考虑的一点是:TOP
关键字没有orderby
子句是不确定的
来自Microsoft文档(更多信息):
当TOP与ORDERBY子句一起使用时,结果集被限制为前N个有序行;否则,它将以未定义的顺序返回前N行数
<>你应该考虑将<<代码>顺序按添加到查询的第二部分:
select '; ' + [NAME]
from (select a.[NAME] as 'NAME'
from [MS].[dbo].[A_POSITIONS] a
where a.ID = 208418
except
select top 1 b.[NAME]
from [MS].[dbo].[A_POSITIONS] b
where b.ID = 208418
--Add an ORDER BY clause here
) as c
for XML PATH(''),TYPE
这是您的全部代码吗?没有其他代码吗?是的,它是查询窗口中唯一的代码。
select '; ' + [NAME]
from (select a.[NAME] as 'NAME'
from [MS].[dbo].[A_POSITIONS] a
where a.ID = 208418
except
select top 1 b.[NAME]
from [MS].[dbo].[A_POSITIONS] b
where b.ID = 208418
--Add an ORDER BY clause here
) as c
for XML PATH(''),TYPE