修剪的T-SQL查询等效项(从“ CRIC2”跟踪“ C”)

时间:2018-11-09 06:54:57

标签: sql sql-server

我想从变量字符串(IS18002TBB1C2)中丢弃'C'中的结尾字符。

需要等价于

    `TRIM` (TRAILING 'C' FROM 'IS18002TBB1C2') 

在SQL Server中

期望ans是IS18002TBB1

3 个答案:

答案 0 :(得分:3)

假设您通常希望删除以 last C开头的子字符串,我们可以尝试在字符串的反面使用CHARINDEXSUBSTRING

SELECT
     col,
     REVERSE(SUBSTRING(REVERSE(col),
             CHARINDEX('C', REVERSE(col)) + 1,
             LEN(col))) AS col_out
FROM yourTable;

Demo

答案 1 :(得分:2)

您可以将REVERSE()LEFTCHARINDEX组合使用

DECLARE @Str VARCHAR (10)='CRICT2'

SELECT LEFT(@str,LEN(@str)-CHARINDEX('C',REVERSE(@Str)))

对于DEMO

答案 2 :(得分:0)

select reverse(substring(reverse('ABCCCC')                 
                        ,patindex('%[^C]%',reverse('ABCCCC'))
                        ,len('ABCCCC')
                        )
               )