Extraire quatre chiffres d'une colonne par expression rationnelle
-
28-09-2020 - |
Question
Je suis assis sur une base de données où une colonne contient deux types de données ;)
Exemple
"1";"When the Wind Blows 0275";"James Patterson "
"4";"The Reluctant Fundamentalist 1026";"Mohsin Hamid";
L'utilisateur pensait qu'il serait facilement consultable de cette façon...
Maintenant, j'essaie de résoudre ce problème, en retirant l'ID du champ de titre et en le plaçant dans sa propre colonne.
Comment sélectionner le titre avec une expression rationnelle pour n'obtenir que le numéro à quatre chiffres à la fin du titre ?Ce numéro peut commencer par un zéro et le titre peut contenir plus de chiffres que ces 4.
Il n'y a également aucune garantie que les chiffres soient les quatre derniers caractères du titre, parfois des espaces suivent. SUBSTRING
ne fonctionnera pas dans ce cas
Merci pour l'aide!
La solution
Si les quatre chiffres que vous devez extraire se trouvent exactement à la fin de la chaîne ou sont suivis uniquement d'espaces, il serait probablement plus simple de les extraire en utilisant la commande RIGHT()
fonction après avoir supprimé les espaces de fin à l’aide de la RTRIM()
fonction:
SELECT
RIGHT(RTRIM(YourColumnName), 4) AS SomeCode
FROM
YourTableName
WHERE
...
;