Подстрока T-SQL-последние 3 символа
используя T-SQL, как я могу получить последние 3 символы столбца varchar?
Итак, текст столбца IDS_ENUM_Change_262147_190
и мне нужно 190
5 ответов:
SELECT RIGHT(column, 3)
это все, что вам нужно.
вы также можете сделать
LEFT()
точно так же.имейте в виду, если вы используете это в
WHERE
пункт о том, чтоRIGHT()
не может использовать никаких индексов.
вы можете использовать в любом случае:
SELECT RIGHT(RTRIM(columnName), 3)
или
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
потому что больше способов думать об этом всегда хорошо:
select reverse(substring(reverse(columnName), 1, 3))
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>
- обратный текст
- ищите первое вхождение определенного символа (т. е. первое вхождение из конца текста). Возвращает индекс этого символа
- снова смотрит на перевернутый текст. поиск от индекса 0 до индекса вашего Чара. Это дает строку, которую вы ищете, но в обратном порядке
- перевернул перевернутую строку, чтобы дать вам желаемая подстрока