hen*_*ron 9 sql-server replace sql-server-2005
我有一个SQL SELECT
查询,它从我的数据库中获取一些数据.我需要在SELECT
查询中替换包含分号的某个单词.正是这样:
REPLACE(Table.Field,'"','') AS Field1
Run Code Online (Sandbox Code Playgroud)
我正在读的错误
字符串'"'后面的未闭合引号.
所以我认为分号正在终止查询.我怎么能逃脱那个分号?
我试过反斜杠并使用双引号.
根据要求提供一些样本数据和预期输出
Field
"Hello"
"Goodbye"
Run Code Online (Sandbox Code Playgroud)
Field1
Hello
Goodbye
Run Code Online (Sandbox Code Playgroud)
SELECT REPLACE(Table.Name,';','') AS Name,
SUM(Table.Quantity) AS Quantity,
SUM(Table.Price*Table.Quantity) AS Price
FROM Table
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)
Vla*_*nov 12
该;
符号不终止查询,它不应该被转义,如果它是字符串常量(单引号括起来的文本的一部分'
).
这是一个完整的示例,演示它在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;
Run Code Online (Sandbox Code Playgroud)
这是结果集:
Name ReplacedName
---- ------------
Field Field
"Hello" Hello
"Goodbye" Goodbye
Run Code Online (Sandbox Code Playgroud)
您没有提供有关如何构造和执行查询的所有详细信息,因此我猜测.它看起来像你:
"
为"
符号.'
在SQL文本中找到不匹配的符号.它可能来自您从数据库中存储的值连接到查询的用户输入.;
符号无关.您的错误消息明确指出符号'
后缺少匹配的引号(即)"
.要了解发生了什么,您应该打印出发送到服务器的实际SQL查询的文本.一旦你拥有它,它应该变得明显出错.我不认为您在问题中提出的完整查询是您尝试运行的真实查询.它有语法错误.所以,首先得到真实的东西.
这对我来说很好
declare @a as nvarchar(50) = '"Hello"'
select REPLACE(@a,'"','') AS Field1
declare @b as nvarchar(50) = '"Goodbye"'
select REPLACE(@b,'"','') AS Field1
Run Code Online (Sandbox Code Playgroud)
错误消息显示未闭合的引号?
在你的几个领域你有单引号吗?在这种情况下,您可以首先替换它们,如下所示
REPLACE(Table.Field,'''','') AS Field1
Run Code Online (Sandbox Code Playgroud)
让我知道你需要更多的帮助.
归档时间: |
|
查看次数: |
7087 次 |
最近记录: |