Sql server SQL select语句中的xml格式 如果我想在中间不存在条件的情况下用字符连字符来显示MyPyId和LealIONNEX,但MSG显示XML标签,例如“代码> 104A2001 。 我怎样才能去掉标签 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;
在元素person\u id之前尝试以下内容:Sql server SQL select语句中的xml格式 如果我想在中间不存在条件的情况下用字符连字符来显示MyPyId和LealIONNEX,但MSG显示XML标签,例如“代码> 104A2001 。 我怎样才能去掉标签 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;,sql-server,xml,tags,Sql Server,Xml,Tags,在元素person\u id之前尝试以下内容: DECLARE @level_name nvarchar(MAX) = ( SELECT '' + [person_ID],'-', [level_NAME]+ ' ' FROM inserted ic where not EXISTS (SELECT 1 FROM [dbo].[levels] c
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;
此解决方案的基本测试是:
SELECT ''+[person_ID],'-',
[level_NAME]+ ' '
FROM (select 1 AS person_id, 'l' AS level_name) ic
FOR XML PATH('')
相比
SELECT [person_ID],'-',
[level_NAME]+ ' '
FROM (select 1 AS person_id, 'l' AS level_name) ic
FOR XML PATH('')
为什么对XML路径使用
?为什么不将所有字符串添加到一个字符串中,比如:[person\u ID]+'-'+[level\u NAME]+'
我对xml不熟悉,不知道如果我不使用xml路径该怎么办。此路径一次返回多个不匹配的结果。此代码解决了这一问题,SELECT concat([person\u ID]、“-”、[LEVEL\u NAME])+'
仍然得到相同的输出105-A2001
我添加了一个示例,以阐明在人员之前添加'+'的效果。谢谢,这给了我最初想要的。