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!