SQLite查询剥离一些文本

时间:2014-10-08 01:09:08

标签: string sqlite

我想找到所有类似

的记录

Transfer to CHK 9071 Confirmation# 1904952784

(无论数量多少)并剥离"确认#"部分;所以上面会变成

Transfer to CHK 9071

我试过这个,但语法错误:

update ZUSERPAYEE set ZNAME = left (ZNAME,length(ZNAME) - 24) where ZNAME like "%Confirmation# __________";

3 个答案:

答案 0 :(得分:1)

这应该更可靠,因为它不要求确认号码是固定长度。还有LIKE的单引号。

update ZUSERPAYEE 
set ZNAME = INSTR(ZNAME, 'Confirmation#') - 1) 
where ZNAME like '%Confirmation# %'

答案 1 :(得分:1)

我建议您查看SUBSTRING_INDEX功能。 (我知道在MySQL中可用,不确定SqlLite3)

e.g。

SUBSTRING_INDEX('Transfer to CHK 9071 Confirmation# 1904952784',' Confirmation#',1)

(该示例假设在确认#之前总是有空格,并且您也希望删除该空格。)

如果您只是想在##;确认#'开始时删除,请省略空格字符:

 SUBSTRING_INDEX('Transfer to CHK 9071 Confirmation# 1904952784','Confirmation#',1)

对于给出的示例,将留下尾随空格。可以通过将表达式包装在

中来删除尾随空格
TRIM(TRAILING ' ' FROM expr)

答案 2 :(得分:0)

尝试使用单引号而不是双引号