gpt4 book ai didi

sql - 使用 XML PATH 时的额外字符

转载 作者:行者123 更新时间:2023-12-02 09:23:15 26 4
gpt4 key购买 nike

我有一个名为 Map_Data 的表,数据如下所示:

 ID    SoCol                                                              Descol  
125 case Per_rating when 5 then 'Good' when 4 then 'Ok' else null end D_Code

我在这个特定行上编写了一个查询,查询是:

SELECT  Params = ( SELECT   DesCol + ' = ''' + SoCol + ''''
FROM dbo.Map_Data t1
WHERE ID = 125
FOR
XML PATH('')
)

我得到的输出为:

D_Code = 'case per_rating
 when 5 then 'Good'
 when 4
 then 'Ok'
 end'

谁能告诉我为什么我会收到' '它以及如何纠正它?

最佳答案

这一微小的变化将使丑陋的实体消失,但它们不会消除回车符(查看“结果到文本”中的结果,而不是“结果到网格”中的结果):

SELECT  Params = ( SELECT   DesCol + ' = ''' + SoCol + ''''
FROM dbo.Map_Data t1
WHERE ID = 125
FOR
XML PATH(''), TYPE
).value(N'./text()[1]', N'nvarchar(max)');

如果你也想摆脱 CR/LF 你可以说:

SELECT  Params = ( SELECT   REPLACE(REPLACE(DesCol + ' = ''' + SoCol + '''', 
CHAR(13), ''), CHAR(10), '')
FROM dbo.Map_Data t1
WHERE ID = 125
FOR
XML PATH(''), TYPE
).value(N'./text()[1]', N'nvarchar(max)');

此外,我不确定您将如何使用输出,但如果您稍后要使用动态 SQL 对其进行评估,则需要替换嵌入的单引号 (') 带有两个单引号 ('')。否则它会爆炸,因为它们也是字符串分隔符。

关于sql - 使用 XML PATH 时的额外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com