【发布时间】:2014-07-29 09:02:08
【问题描述】:
如果我想在 where not exists 条件有效但 msg 显示 xml 标签时在中间显示带有连字符的 person_id 和 level_name,例如<person_ID>104</person_ID>A2001 。
如何摆脱标签?
DECLARE @level_name nvarchar(MAX) =
(
SELECT [person_ID],'-',
[level_NAME]+ ' '
FROM inserted ic
where not EXISTS (SELECT 1 FROM [dbo].[levels] c
WHERE ic.[geo]=c.[GEO] and
and c.area=1)
FOR XML PATH('')
);
IF @level_name IS NOT NULL
BEGIN
RAISERROR('level name not found : %s', 16, 1, @level_name) with log;
END;
【问题讨论】:
-
为什么你使用
FOR XML PATH?为什么不将所有字符串合二为一,如下所示:[person_ID] + '-' + [level_NAME]+ ' ' -
我是 xml 新手,如果我不使用 xml 路径,我不知道该怎么办。此路径一次返回多个不匹配的结果。此代码解决了这个问题,
SELECT concat ([person_ID],'-', [LEVEL_NAME]) + ' '
标签: sql-server xml tags