T-SQL子串 - 最后3个字符

时间:2011-12-02 16:53:17

标签: sql sql-server sql-server-2005 tsql

使用T-SQL,我如何获得varchar列的最后3个字符?

因此,列文字为 IDS_ENUM_Change_262147_190 ,我需要 190

5 个答案:

答案 0 :(得分:99)

SELECT RIGHT(column, 3)

这就是你所需要的一切。

你也可以用同样的方式做LEFT()

请记住,如果您在WHERE子句中使用此RIGHT()不能使用任何索引。

答案 1 :(得分:15)

您可以使用以下任何一种方式:

SELECT RIGHT(RTRIM(columnName), 3)

OR

SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)

答案 2 :(得分:7)

因为考虑它的更多方法总是好的:

select reverse(substring(reverse(columnName), 1, 3))

答案 3 :(得分:1)

declare @newdata varchar(30)
set @newdata='IDS_ENUM_Change_262147_190'
select REVERSE(substring(reverse(@newdata),0,charindex('_',reverse(@newdata))))

===说明===

我发现这样写的更容易阅读:

SELECT
    REVERSE( --4.
        SUBSTRING( -- 3.
            REVERSE(<field_name>),
            0,
            CHARINDEX( -- 2.
                '<your char of choice>',
                REVERSE(<field_name>) -- 1.
            )
        )
    )
FROM
    <table_name>
  1. 反转文字
  2. 查找第一次出现的特定字符(即第一次出现FROM END of text)。获取此char的索引
  3. 再次查看相反的文字。从索引0搜索到您的char的索引。这给出了您要查找的字符串,但反过来
  4. 撤消反转的字符串,为您提供所需的子字符串

答案 4 :(得分:-3)

如果你想专门找到以所需字符结尾的字符串,那么这对你有帮助......

select * from tablename where col_name like '%190'