it-swarm.com.de

T-SQL-Teilzeichenfolge - Letzte 3 Zeichen

Wie würde ich unter Verwendung von T-SQL vorgehen, um die letzten Zeichen einer varchar-Spalte zu erhalten?

Der Spaltentext lautet also IDS_ENUM_Change_262147_190 und ich brauche 190

60
Jared
SELECT RIGHT(column, 3)

Das ist alles was du brauchst.

Auf die gleiche Weise können Sie auch LEFT() ausführen.

Denken Sie daran, wenn Sie dies in einer WHERE - Klausel verwenden, dass die RIGHT() keine Indizes verwenden kann.

100
JNK

Sie können beide Möglichkeiten nutzen:

SELECT RIGHT(RTRIM(columnName), 3)

OR

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

Weil mehr Denkweisen immer gut sind:

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))))

=== Erklärung ===

Ich fand es einfacher, so geschrieben zu lesen:

SELECT
    REVERSE( --4.
        SUBSTRING( -- 3.
            REVERSE(<field_name>),
            0,
            CHARINDEX( -- 2.
                '<your char of choice>',
                REVERSE(<field_name>) -- 1.
            )
        )
    )
FROM
    <table_name>
  1. Kehren Sie den Text um
  2. Suchen Sie nach dem ersten Vorkommen eines bestimmten Zeichens (d. H. Dem ersten Vorkommen von FROM END des Texts). Ruft den Index dieses Zeichens ab
  3. Schaut sich den umgekehrten Text noch einmal an. Sucht vom Index 0 zum Index Ihres Zeichens. Dies gibt die Zeichenfolge, die Sie suchen, aber in umgekehrter Reihenfolge
  4. Kehrte die umgekehrte Zeichenfolge um, um die gewünschte Teilzeichenfolge zu erhalten
1
user2176274