Maison >base de données >tutoriel mysql >Comment diviser une seule colonne « Nom » en colonnes « Prénom » et « Nom » dans SQL ?

Comment diviser une seule colonne « Nom » en colonnes « Prénom » et « Nom » dans SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-13 11:54:43344parcourir

How to Split a Single

Diviser une valeur de colonne unique en plusieurs colonnes

La tâche consiste à diviser les valeurs d'une seule colonne "nom" en plusieurs colonnes, y compris le prénom et le nom. Vous souhaitez omettre le deuxième prénom et afficher les données résultantes dans les colonnes "prénom" et "nom".

Solution personnalisée

L'approche suggérée peut ne pas convenir à la gestion de différents formats de noms. Cependant, une requête SQL personnalisée peut y parvenir :

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

Cette requête utilise la fonction Charindex pour trouver la position du premier caractère espace dans la colonne Nom. Si des espaces sont trouvés, le nom est divisé en parties prénom et nom. Si aucun espace n'est trouvé, le nom entier est affecté à la colonne prénom et une valeur NULL est affectée à la colonne nom. Le deuxième paramètre de la fonction RIGHT a été corrigé pour utiliser LEN(name) pour calculer la longueur de la chaîne, garantissant que le nom de famille est correctement extrait.

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