在T-SQL中修剪不同长度的字符串中的字母数字字符

mmc*_*ynn 1 sql sql-server string

我有一个结果集,我想修剪一个2位数的后缀.字符串将始终具有不同的长度,但后缀将始终是由" - "分隔的两位数字.

例:

APPTR-W302-01
NRSB-8920-09

现在我正在使用以下内容.这是一个黑客,因为'20'参数是任意的.

REVERSE(SUBSTRING(REVERSE(COURSENAME),4,20))
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Rob*_*ott 10

后缀总是' - ##'吗?如果后缀长度没有改变,

Left(COURSENAME,LEN(COURSENAME)-3)
Run Code Online (Sandbox Code Playgroud)

  • 2应该是3,假设他也不想要破折号. (2认同)