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>
Résultat attendu :
<code class="language-sql">名 姓 ---------------------------------- abcd efgh ijk lm opq asd asdjja asb asd asd NULL</code>
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>
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!