我被困在试着把所有的文本取到(但不包括)最后的破折号。
我可以找到一个将文本取到1冲刺左边的解决方案(例如。SUBSTRING(@ID,1,CHARINDEX('-',@ID) -1),甚至说第二个破折号,但问题是,我的列表中的破折号相差很大。
从以上我想取的,所有的文字左边的最后一个破折号。
任何指南针都会赏识。
发布于 2018-08-29 05:34:20
一个技巧,我们可以在这里找到第一次出现破折号在反向字符串。然后,使用该索引来偏移整个字符串的子字符串,但从最初的开始开始。
SELECT
col,
LEFT(col, LEN(col) - CHARINDEX('-', REVERSE(col))) AS col_sub
FROM yourTable
WHERE
col LIKE '%-%';

Demo
https://stackoverflow.com/questions/52069938
复制相似问题