我的大脑可能真的很累,但我似乎无法解决这个简单的查询。我想从列中提取分隔符中的最后一个子字符串,例如“,”?我在考虑使用 REVERSE 或 RIGHT .. 但结果真的很奇怪......
假设我在表 LOANS 中有一个表列“DESCRIPTION”,其中包含一个条目
Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".
我想要最后一个子字符串
IT-X130E-9
在分隔符 '"' 内希望现在更清楚
关键是reverse()
和一些蛮力:
select replace(replace(right(val, instr(substring(reverse(val), 3, 100), '"')+2), '"', ''), '.', '')
from (select 'Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".' as val) t
这假定字符串不包含'"'
或'.'
。
可以试试SUBSTRING INDEX(str,delim,count)
SELECT SUBSTRING_INDEX(
SUBSTRING_INDEX('yourString', '"', -2), '"', 1);