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
Antworten:
Sie können beide Möglichkeiten verwenden:
SELECT RIGHT(RTRIM(columnName), 3)
ODER
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
Weil mehr Denkweisen immer gut sind:
select reverse(substring(reverse(columnName), 1, 3))
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>
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'
WHERE LEFT(reversed,3) = REVERSE('190')
. (Mir ist langweilig, können Sie sagen?)