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
708 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!

source:php.cn
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