Maison >base de données >tutoriel mysql >Comment puis-je diviser une seule colonne de plusieurs valeurs en colonnes distinctes dans SQL ?

Comment puis-je diviser une seule colonne de plusieurs valeurs en colonnes distinctes dans SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-13 07:18:45267parcourir

How Can I Split a Single Column of Multiple Values into Separate Columns in SQL?

Transformer une seule colonne avec plusieurs valeurs en colonnes distinctes dans SQL

Travailler avec des données SQL implique souvent la nécessité de restructurer les colonnes. Une tâche courante consiste à diviser une seule colonne contenant plusieurs valeurs en colonnes distinctes. Voici une méthode pour y parvenir :

La requête SQL suivante utilise des instructions CASE et des fonctions de chaîne pour analyser une colonne nommée "nom" contenant le prénom et le nom :

<code class="language-sql">SELECT
  CASE
    WHEN name LIKE '% %' THEN SUBSTRING(name, 1, CHARINDEX(' ', name) - 1)
    ELSE name
  END AS first_name,
  CASE
    WHEN name LIKE '% %' THEN SUBSTRING(name, CHARINDEX(' ', name) + 1, LEN(name))
    ELSE NULL
  END AS last_name
FROM
  YourTable;</code>

Cette approche vérifie si la colonne name contient un espace utilisant LIKE '% %'. Si un espace existe, les fonctions SUBSTRING et CHARINDEX extraient le texte avant et après l'espace dans first_name et last_name respectivement. Si aucun espace n'est trouvé, l'intégralité de name est attribuée à first_name et last_name est définie sur NULL.

Cette solution offre une approche pratique pour de nombreux scénarios courants, bien que des situations plus complexes puissent nécessiter des techniques de manipulation de chaînes plus sophistiquées.

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:
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