program story

T-SQL 하위 문자열-마지막 3 자

inputbox 2020. 12. 4. 08:11
반응형

T-SQL 하위 문자열-마지막 3 자


T-SQL을 사용 하여 varchar 열의 마지막 3 자를 가져 오는 방법은 무엇입니까?

열 텍스트는 그래서 IDS_ENUM_Change_262147_190내가 필요190


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>
  1. 텍스트 반전
  2. 특정 문자의 첫 번째 발생을 찾습니다 (즉, 텍스트의 첫 번째 발생 FROM END). 이 문자의 인덱스를 가져옵니다.
  3. 반전 된 텍스트를 다시 봅니다. 색인 0에서 문자 색인까지 검색합니다. 이것은 당신이 찾고있는 문자열을 제공하지만 반대로
  4. 원하는 부분 문자열을 제공하기 위해 반전 된 문자열을 반전

원하는 문자로 끝나는 문자열을 구체적으로 찾으려면 도움이 될 것입니다.

select * from tablename where col_name like '%190'

참고 URL : https://stackoverflow.com/questions/8359772/t-sql-substring-last-3-characters

반응형