Maison > base de données > tutoriel mysql > Comment diviser une colonne VARCHAR délimitée pour des requêtes SQL efficaces ?

Comment diviser une colonne VARCHAR délimitée pour des requêtes SQL efficaces ?

Mary-Kate Olsen
Libérer: 2024-12-17 17:55:09
original
769 Les gens l'ont consulté

How to Split a Delimited VARCHAR Column for Efficient SQL Queries?

Diviser une colonne VARCHAR en plusieurs valeurs dans SQL

Problème :

Lors de la récupération des valeurs à partir d'une colonne VARCHAR à l'aide d'une clause IN, Oracle transforme la liste délimitée en une chaîne entre guillemets simples, empêchant ainsi le sous-requête à partir de valeurs individuelles correspondantes.

Solution 1 :

Enveloppez les valeurs de liste délimitées dans la clause IN avec le même délimiteur utilisé dans la colonne VARCHAR. Par exemple, au lieu d'utiliser AD_Ref_List.Value IN ('CO','VO'), utilisez AD_Ref_List.Value IN (',' || 'CO' || ',' || 'VO' || ',') .

Solution 2 (clause Where alternative) :

Utiliser une expression régulière basée technique avec la fonction REGEXP_SUBSTR pour extraire des valeurs individuelles de la liste délimitée à des niveaux spécifiés. Par exemple, la requête suivante utilise la récursion pour diviser la liste délimitée :

SELECT Value
FROM AD_Ref_List
WHERE AD_Reference_ID = 1000448
AND value IN (
  SELECT REGEXP_SUBSTR(XX_DocAction_Next, '[^,]+', 1, LEVEL)
  FROM xx_insert
  WHERE xx_insert_id = 1000283
  CONNECT BY LEVEL <= REGEXP_COUNT(XX_DocAction_Next, '[^,]+')
);
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal