gpt4 book ai didi

sql-server - 如何替换分号?

转载 作者:行者123 更新时间:2023-12-02 10:45:01 24 4
gpt4 key购买 nike

我有一个 SQL SELECT 查询,它从我的数据库中获取一些数据。我需要替换 SELECT 查询中包含分号的某个单词。正是这样:

REPLACE(Table.Field,'"','') AS Field1

我读取到的错误

Unclosed quotation mark after the character string '"'.

所以我认为分号正在终止查询。我怎样才能逃脱那个分号?

我尝试了反斜杠和使用双引号。

根据要求提供一些示例数据和预期输出

<小时/>

示例数据

Field
&quot;Hello&quot;
&quot;Goodbye&quot;
<小时/>

预期输出

Field1
Hello
Goodbye
<小时/>

完整查询

SELECT REPLACE(Table.Name,';','') AS Name,
SUM(Table.Quantity) AS Quantity,
SUM(Table.Price*Table.Quantity) AS Price
FROM Table
GROUP BY Name

最佳答案

; 符号不会终止查询,如果它是字符串文字的一部分(用单引号 ' 括起来的文本),则不应对其进行转义.

这是一个完整的示例,演示了它在 SSMS 中正常工作:

CREATE TABLE #TempTable (Name varchar(50));

INSERT INTO #TempTable (Name) VALUES('Field');
INSERT INTO #TempTable (Name) VALUES('&quot;Hello&quot;');
INSERT INTO #TempTable (Name) VALUES('&quot;Goodbye&quot;');

SELECT
Name
,REPLACE(Name,'&quot;','') AS ReplacedName
FROM #TempTable;

DROP TABLE #TempTable;

这是结果集:

Name                   ReplacedName
---- ------------
Field Field
&quot;Hello&quot; Hello
&quot;Goodbye&quot; Goodbye

您没有提供如何构建和执行查询的所有详细信息,所以我有一个猜测。看来您是:

  • 动态构建查询文本
  • 为此使用一些基于网络的工具/语言/技术
  • 您使用的基于网络的文本处理工具/语言会像 HTML 一样解析 SQL 查询的文本,并会干扰结果。一方面,它将 " 更改为 " 符号。
  • 在所有这些处理过程中,您最终会在 SQL 文本中得到不匹配的 ' 符号。它可能来自您连接到数据库中存储的值的查询的用户输入。
  • 它与;符号无关。您的错误消息清楚地表明 " 符号后面缺少匹配的引号(即 ')。

要了解发生了什么,您应该打印出发送到服务器的实际 SQL 查询文本。一旦你掌握了它,问题就显而易见了。我不认为您在问题中输入的完整查询是您尝试运行的真正查询。它有语法错误。所以,首先要获得真实的东西。

关于sql-server - 如何替换分号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30021608/

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