我的程序中存在一个错误,它在我们的数据库中的字符串中复制撇号。它是字符串' RAYNAUD&S; S SYNDROME'那里有超过32k的撇号。编写SELECT查询以调用具有多个撇号的字符串的最佳方法是什么?我在线选择带撇号的字符串的所有演示只是处理单个撇号。
答案 0 :(得分:0)
这将返回YourTable中YourColumn包含至少一个撇号的所有行。将0替换为您需要检查的任何撇号数。
select *
from [YourTable]
where LEN([YourColumn]) - LEN(REPLACE([YourColumn], '''', '')) > 0
答案 1 :(得分:0)
要提取包含许多撇号的记录,您可以编写如下查询:
create table test (somedata varchar(100));
insert into test values ('''hello'' ''again''')
select * from test
where len(somedata) - len(REPLACE(somedata, '''', '')) > 0
要更新所有这些记录,您可以
update test
set somedata = REPLACE(somedata, '''', '')
where len(somedata) - len(REPLACE(somedata, '''', '')) > 0
答案 2 :(得分:0)
两种方法:
如果你专门寻找你提到的字符串的坏版本
SELECT * FROM myTable WHERE myColumn LIKE 'RAYNAUD''S SYNDROME' AND LEN(myColumn) > 18
另一个更常用于查找超过2个单引号的行(您可以将其更改为查找其他一些阈值数字)
SELECT * FROM myTable WHERE LEN(REPLACE(myColumn,'''','') < LEN(myColumn) - 2