我的大脑可能真的很累但我似乎无法解决这个简单的问题..我想从列中提取分隔符中的最后一个子字符串,例如','?我正在考虑使用REVERSE或RIGHT ......但结果却很奇怪......
假设我在表LOANS中有一个表格列'DESCRIPTION',带有一个条目
Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".
我想要最后一个子串
IT-X130E-9
在分隔符内“”希望现在更清楚
答案 0 :(得分:1)
关键是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
这假设该字符串不包含'"'
或'.'
。
答案 1 :(得分:1)
可以尝试SUBSTRING INDEX(str,delim,count)
SELECT SUBSTRING_INDEX(
SUBSTRING_INDEX('yourString', '"', -2), '"', 1);