0

我的大脑可能真的很累,但我似乎无法解决这个简单的查询。我想从列中提取分隔符中的最后一个子字符串,例如“,”?我在考虑使用 REVERSE 或 RIGHT .. 但结果真的很奇怪......

假设我在表 LOANS 中有一个表列“DESCRIPTION”,其中包含一个条目

Changed Loan Laptop from "IT-X130E-10" to "IT-X130E-9".

我想要最后一个子字符串

IT-X130E-9

在分隔符 '"' 内希望现在更清楚

4

2 回答 2

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

这假定字符串不包含'"''.'

于 2013-06-21T02:20:06.960 回答
1

可以试试SUBSTRING INDEX(str,delim,count)

SELECT SUBSTRING_INDEX(
    SUBSTRING_INDEX('yourString', '"', -2), '"', 1);
于 2013-06-21T02:39:38.917 回答