web-dev-qa-db-ja.com

T-SQLサブストリング-最後の3文字

T-SQLを使用して、varchar列のlast文字を取得するにはどうすればよいですか?

したがって、列のテキストはIDS_ENUM_Change_262147_190であり、190が必要です

60
Jared
SELECT RIGHT(column, 3)

必要なのはそれだけです。

同じ方法でLEFT()を実行することもできます。

RIGHT()がインデックスを使用できないWHERE句でこれを使用している場合は注意してください。

100
JNK

どちらの方法でも使用できます:

SELECT RIGHT(RTRIM(columnName), 3)

OR

SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
15
Elias Hossain

それについて考えるより多くの方法が常に良いからです:

select reverse(substring(reverse(columnName), 1, 3))
7
Ben Thul
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. Specif charの最初の出現を探します(つまり、テキストの最初のFROM FROM END)。この文字のインデックスを取得します
  3. 反転したテキストをもう一度見てください。インデックス0から文字のインデックスまで検索します。これにより、探している文字列が得られますが、逆に
  4. 目的の部分文字列を提供するために、逆の文字列を逆にしました
1
user2176274