如果是 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;
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;