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!

Était-ce utile?

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
  ...
;
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top