Comment prendre les quatre derniers caractères d'un varchar?

93

J'essaie de prendre les quatre derniers caractères uniquement à partir d'un champ varchar. Toutes les lignes sont de longueurs différentes. Quelle fonction dois-je utiliser pour accomplir cela?

Michael A
la source

Réponses:

227

Le droit devrait faire:

select RIGHT('abcdeffff',4)
Rayon du Vide
la source
20
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHrenvoie la longueur de la chaîne et SUBSTRrenvoie 4 caractères à partir de "la longueur de la position - 4"

drchris
la source
2
Bienvenue à SO et merci d'avoir publié la réponse. Pensez à ajouter du contexte à votre code et à le formater.
Richard Erickson
2
Il y a un bug ponctuel ici. Devrait être SUBSTR(column, LENGTH(column) - 3, 4). Si la longueur est de 4, nous devons commencer à la position 1 et prendre 4 caractères.
Karl
9

Pour Oracle SQL, SUBSTR(column_name, -# of characters requested)extraira les trois derniers caractères d'une requête donnée. par exemple

SELECT SUBSTR(description,-3) FROM student.course;
alexanderjsingleton
la source
Juste pour noter, cela ne fonctionne pas pour ms sql / sql-server, non?
ScottFoster1000
-3

solution testée sur hackerrank ....

select distinct(city) from station
where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');
Pratishtha Tripathi
la source