Maison > base de données > tutoriel mysql > Comment diviser une seule colonne de noms en colonnes de prénom et de nom dans SQL ?

Comment diviser une seule colonne de noms en colonnes de prénom et de nom dans SQL ?

DDD
Libérer: 2025-01-13 10:23:42
original
997 Les gens l'ont consulté

How to Split a Single Column of Names into First and Last Name Columns in SQL?

Diviser une seule valeur de colonne en plusieurs valeurs de colonne

Question :

Vous souhaitez convertir une seule colonne contenant une liste de noms en plusieurs colonnes de prénoms et de noms.

Exemple :

<code class="language-sql">姓名
------------
abcd efgh
ijk lmn opq
asd j. asdjja
asb (asdfas) asd
asd</code>
Copier après la connexion

Résultat attendu :

<code class="language-sql">名             姓
----------------------------------
abcd                     efgh
ijk                      lm opq
asd                      asdjja
asb                      asd
asd                      NULL</code>
Copier après la connexion

Solution :

La méthode précédente peut ne pas gérer correctement tous les formats de nom. Voici une solution améliorée utilisant T-SQL :

<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>
Copier après la connexion

Ce code SQL vérifie d'abord la présence d'espaces dans le nom. S'il est présent, il utilise la fonction SUBSTRING pour extraire la partie avant l'espace comme prénom et la partie après l'espace comme nom de famille. S'il n'y a pas d'espace dans le nom, le nom entier est utilisé comme prénom et le nom de famille est NULL. Cette solution est plus robuste que la solution précédente et gère mieux les différents formats de noms.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal