Sélection de sous-chaînes dans Oracle SQL jusqu'à un caractère spécifique
Dans de nombreuses applications de base de données, il est souvent nécessaire de sélectionner seulement une partie d'un colonne de chaîne basée sur un délimiteur spécifique. Dans Oracle SQL, l'extraction de sous-chaînes jusqu'à un caractère spécifique peut s'avérer difficile en raison de la nature basée sur la position de la fonction SUBSTRING. Cet article résout ce problème en présentant une solution complète qui capture avec précision les sous-chaînes en fonction d'un délimiteur désigné.
SOLUTION
Pour isoler les sous-chaînes jusqu'à un caractère spécifié, une combinaison trois fonctions peuvent être utilisées : SUBSTR, INSTR et NVL. SUBSTR permet l'extraction d'une partie d'une chaîne en fonction des positions de début et de fin. INSTR, d'autre part, identifie l'emplacement d'une sous-chaîne ou d'un caractère spécifié dans une chaîne donnée. NVL sert de mécanisme de secours, renvoyant la chaîne d'origine si le caractère spécifié n'est pas trouvé.
Par exemple, considérons la colonne de tableau suivante avec des valeurs :
ABC_blahblahblah DEFGH_moreblahblahblah IJKLMNOP_moremoremoremore
Pour récupérer uniquement les sous-chaînes jusqu'au caractère de soulignement, la requête suivante peut être utilisée :
SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output FROM table_name;
Dans cette requête, la fonction NVL garantit que même les chaînes sans caractère de soulignement sont retournés, mais avec leur original valeur.
REFERENCE
ADDENDUM
Dans Oracle10g et versions ultérieures, la fonction REGEXP_SUBSTR peut être utilisée pour une extraction de sous-chaînes plus flexible à l'aide d'expressions régulières.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!