Avec T-SQL, comment pourrais-je obtenir les derniers caractères d'une colonne varchar?
Le texte de la colonne est donc IDS_ENUM_Change_262147_190
et j'ai besoin de 190
SELECT RIGHT(column, 3)
C'est tout ce dont vous avez besoin.
Vous pouvez aussi faire LEFT()
de la même manière.
Gardez à l'esprit si vous utilisez ceci dans une clause WHERE
que la RIGHT()
ne peut utiliser aucun index.
Vous pouvez utiliser les deux méthodes:
SELECT RIGHT(RTRIM(columnName), 3)
OR
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
Parce que plus de façons de penser sont toujours bonnes:
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))))
=== Explication ===
J'ai trouvé plus facile de lire comme ceci:
SELECT
REVERSE( --4.
SUBSTRING( -- 3.
REVERSE(<field_name>),
0,
CHARINDEX( -- 2.
'<your char of choice>',
REVERSE(<field_name>) -- 1.
)
)
)
FROM
<table_name>