sql-server – 如何替换分号

前端之家收集整理的这篇文章主要介绍了sql-server – 如何替换分号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个sql SELECT查询从我的数据库抓取一些数据.我需要在我的SELECT查询中替换一个包含分号的单词.正是这样:
REPLACE(Table.Field,'"','') AS Field1

我读到的错误

Unclosed quotation mark after the character string ‘”‘.

所以我认为分号正在终止查询.我怎么能逃脱这个分号?

我尝试了反斜杠并使用双引号.

根据要求提供一些样品数据和预期输出

样品数据

Field
"Hello"
"Goodbye"

预期产量

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('"Hello"');
INSERT INTO #TempTable (Name) VALUES('"Goodbye"');

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

DROP TABLE #TempTable;

这是结果集:

Name                   ReplacedName
----                   ------------
Field                  Field
"Hello"      Hello
"Goodbye"    Goodbye

你没有提供你如何构建和执行你的查询的所有细节,所以我有一个猜测.看起来你是:

>动态构建查询的文本
>使用一些基于Web的工具/语言/技术
>基于Web的文本处理工具/语言,您可以将SQL查询的文本解析为HTML并干扰结果.一方面,它改变和“到“符号”.
>在所有这些处理过程中,最终在sql文本中使用无与伦比的符号.它可能来自您从数据库中存储的值连接到查询用户输入.
这与…无关符号.您的错误消息清楚地表明,在“符号”之后缺少匹配的引号(即’).

要了解发生了什么,您应该打印发送到服务器的实际SQL查询的文本.一旦你有了,应该会变得明显出了什么问题.我不认为您提出的完整查询是您正在尝试运行的真正查询.它有语法错误.所以,首先得到真正的东西.

猜你在找的MsSQL相关文章