如果是 SQL 中的字母表,如何 select 一个子字符串但省略最后一个字符

How to select a substring but leaving out the last character if is an alphabet in SQL

DECLARE @CUSTOMER_ID VARCHAR(50)
SELECT @CUSTOMER_ID = 'RS/123/2017(SA)' 
PRINT @CUSTOMER_ID

DECLARE @CUSTOMER_ID1 VARCHAR(50)
SELECT @CUSTOMER_ID1 = 'RS/123/2017SA' 
PRINT @CUSTOMER_ID1

我需要一个函数可以 return 我的 customer_ID 除了字符串中的最后一个字符。我只能使用以下函数处理第一个。

case when charindex('(',@CUSTOMER_ID) = 0 then @CUSTOMER_ID 
else left(@CUSTOMER_ID,charindex('(',@CUSTOMER_ID)-1))

你可以像这样使用子串:

SELECT SUBSTR(@CUSTOMER_ID, 0, LENGTH(@CUSTOMER_ID) - 1) FROM your_table

找到最右边数字的位置,并取包含该位置的字符串的左边符号

DECLARE @CUSTOMER_ID1 VARCHAR(50);
SELECT @CUSTOMER_ID1 = 'RS/123/2017SA';

select left(@CUSTOMER_ID1, len(@CUSTOMER_ID1) - patindex('%[0-9]%', reverse(trim(@CUSTOMER_ID1))) + 1) customer_ID;