Подстрока T-SQL - последние 3 символа - PullRequest
60 голосов
/ 02 декабря 2011

Используя T-SQL, как мне получить последние 3 символа столбца varchar?

Таким образом, текст столбца IDS_ENUM_Change_262147_190, и мне нужно 190

Ответы [ 5 ]

100 голосов
/ 02 декабря 2011
SELECT RIGHT(column, 3)

Это все, что тебе нужно.

Вы также можете сделать LEFT() таким же образом.

Помните, что если вы используете это в предложении WHERE, то RIGHT() не может использовать индексы.

15 голосов
/ 02 декабря 2011

Вы можете использовать любой из способов:

SELECT RIGHT(RTRIM(columnName), 3)

OR

SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
7 голосов
/ 02 декабря 2011

Потому что больше способов думать об этом всегда хорошо:

select reverse(substring(reverse(columnName), 1, 3))
1 голос
/ 26 ноября 2013
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. Ищите первое вхождение указанного символа (т. Е. Первое вхождение ОТ КОНЦА текста).Получает индекс этого символа
  3. Снова просматривает перевернутый текст.поиск от индекса 0 до индекса вашего персонажа.Это дает искомую строку, но в обратном порядке
  4. Перевернутая строка перевернута, чтобы получить желаемую подстроку
0 голосов
/ 24 марта 2014

, если вы хотите специально найти строки, которые заканчиваются нужными символами, тогда это поможет вам ...

select * from tablename where col_name like '%190'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...