Wie würde ich mit T-SQL die letzten 3 Zeichen einer Varchar-Spalte abrufen?
Also der Spaltentext ist IDS_ENUM_Change_262147_190
und ich brauche190
sql
sql-server
sql-server-2005
tsql
Jared
quelle
quelle
WHERE LEFT(reversed,3) = REVERSE('190')
. (Mir ist langweilig, können Sie sagen?)Sie können beide Möglichkeiten verwenden:
SELECT RIGHT(RTRIM(columnName), 3)
ODER
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
quelle
Weil mehr Denkweisen immer gut sind:
select reverse(substring(reverse(columnName), 1, 3))
quelle
reverse
eine zusätzliche Antwort, da sie sich von Ihrer Antwort unterscheidet? Was ist, wenn ich die Zeichenfolge verschlüsselt und unverschlüsselt habe? Sie sagen, dass willkürliche nutzlose Komplexität irgendwie keine Überlegung ist.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>
quelle
Wenn Sie gezielt Zeichenfolgen finden möchten, die mit den gewünschten Zeichen enden, hilft Ihnen dies ...
select * from tablename where col_name like '%190'
quelle