Подстрока T-SQL - последние 3 символа Используя T-SQL, как я могу получить символы last 3 столбца varchar? Итак, текст столбца IDS_ENUM_Change_262147_190, и мне нужно 190 Ответ 1 SELECT RIGHT(column, 3) Это все, что вам нужно. Вы также можете сделать LEFT() таким же образом. Имейте в виду, если вы используете это в предложении WHERE, что RIGHT() не может использовать какие-либо индексы. Ответ 2 Вы можете использовать любой способ: SELECT RIGHT(RTRIM(columnName), 3) ИЛИ SELECT SUBSTRING(columnName, LEN(columnName)-2, 3) Ответ 3 Потому что больше способов думать об этом всегда хорошо: select reverse(substring(reverse(columnName), 1, 3)) Ответ 4 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> Обратный текст Ищите первое вхождение спецификатора char (то есть первое вхождение FROM END текста). Получает индекс этого char Еще раз взглянул на обратный текст. ищет от индекса 0 до индекса вашего char. Это дает строку, которую вы ищете, но наоборот [/li > Отменил обратную строку, чтобы дать вам нужную подстроку Ответ 5 если вы хотите специально найти строки, которые заканчиваются желаемыми символами, тогда это поможет вам... select * from tablename where col_name like '%190'
Ответ 1 SELECT RIGHT(column, 3) Это все, что вам нужно. Вы также можете сделать LEFT() таким же образом. Имейте в виду, если вы используете это в предложении WHERE, что RIGHT() не может использовать какие-либо индексы.
Ответ 2 Вы можете использовать любой способ: SELECT RIGHT(RTRIM(columnName), 3) ИЛИ SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
Ответ 3 Потому что больше способов думать об этом всегда хорошо: select reverse(substring(reverse(columnName), 1, 3))
Ответ 4 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> Обратный текст Ищите первое вхождение спецификатора char (то есть первое вхождение FROM END текста). Получает индекс этого char Еще раз взглянул на обратный текст. ищет от индекса 0 до индекса вашего char. Это дает строку, которую вы ищете, но наоборот [/li > Отменил обратную строку, чтобы дать вам нужную подстроку
Ответ 5 если вы хотите специально найти строки, которые заканчиваются желаемыми символами, тогда это поможет вам... select * from tablename where col_name like '%190'