Lorsque l’on travaille avec des bases de données, il arrive souvent que nous devions analyser des chaînes de caractères. Une tâche courante consiste à extraire une partie d’une chaîne en fonction de critères spécifiques. Dans cet article, nous comparerons comment SQL Server et Oracle gèrent la fonction substring et explorerons quelques différences intéressantes entre les deux.
La fonction SUBSTRING de SQL Server
Commençons par la fonction substring de SQL Server. Elle est simple et fonctionne comme on s’y attend. Vous passez une chaîne de caractères ou une colonne, spécifiez la position de départ et indiquez le nombre de caractères que vous souhaitez retourner. Voici un exemple :
SELECT SUBSTRING('The quick brown fox.', 5, 5)
Le résultat de cette requête serait “quick”.
Mais SQL Server a d’autres astuces dans sa manche. Il propose également deux autres fonctions : LEFT() et RIGHT(). Ces fonctions vous permettent d’extraire les N premiers ou derniers caractères d’une chaîne, offrant ainsi encore plus de flexibilité aux développeurs SQL.
La fonction SUBSTR d’Oracle
Si vous êtes familier avec la fonction SUBSTRING de SQL Server et que vous l’avez utilisée de manière intensive, vous pourriez penser que vous maîtrisez également la fonction SUBSTR() d’Oracle. Cependant, Oracle a une surprise pour vous.
Tout comme SQL Server, la fonction SUBSTR d’Oracle vous permet d’extraire une partie d’une chaîne de caractères. Voici un exemple :
SELECT SUBSTR('The quick brown fox.', 5, 5) FROM dual;
Le résultat de cette requête serait également “quick”. Jusqu’à présent, il semble qu’Oracle et SQL Server gèrent les fonctions substring de la même manière.
Mais c’est là qu’Oracle se distingue. Il vous permet d’utiliser une valeur négative comme position de départ. Par exemple :
SELECT SUBSTR('The quick brown fox.', -3, 3) FROM dual;
Le résultat de cette requête serait “fox”. La fonction SUBSTR d’Oracle peut gérer les valeurs négatives, mais il y a une condition : la position de départ ne peut pas dépasser la longueur de la chaîne de caractères. Si vous essayez de dépasser la longueur, le résultat sera vide. Par exemple, si vous utilisez -20 comme position de départ, le résultat sera vide.
Conclusion
L’analyse de chaînes de caractères est une tâche courante dans le monde des bases de données, et SQL Server et Oracle fournissent tous deux des fonctions pour accomplir cela. Les fonctions SUBSTRING/SUBSTR de ces plateformes montrent comment des approches différentes peuvent conduire au même résultat. Il est intéressant de voir les variations de fonctionnalités entre les deux.
Quant à savoir laquelle est meilleure, cela dépend finalement de vos besoins spécifiques et de vos préférences. Si vous êtes déjà familier avec SQL Server, explorer la fonction SUBSTR d’Oracle pourrait être une entreprise intéressante. Il est toujours bénéfique d’avoir un ensemble de compétences diversifié dans le monde des bases de données.
Quels sont vos avis sur la fonction SUBSTRING de SQL Server et la fonction SUBSTR d’Oracle ? Partagez vos opinions dans les commentaires ci-dessous !