我一直试图获取直到(但不包括)最后一个破折号的所有文本。
我可以找到一种方法来获取第一个破折号左侧的文本(例如SUBSTRING(@ID,1,CHARINDEX('-',@ID)-1)),甚至说第二个破折号,但问题是我列表中的破折号数量大相径庭。
从上面我想获取最后一个破折号左侧的所有文本。
任何指针表示赞赏。
答案 0 :(得分:0)
一个技巧,我们可以在这里找到反向字符串中破折号的 first 出现。然后,使用该索引来偏移整个字符串的子字符串,但要从原始开头开始。
SELECT
col,
LEFT(col, LEN(col) - CHARINDEX('-', REVERSE(col))) AS col_sub
FROM yourTable
WHERE
col LIKE '%-%';