Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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

在元素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 
                                      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
我添加了一个示例,以阐明在人员之前添加'+'的效果。谢谢,这给了我最初想要的。