Solution SQL : diviser la valeur d'une seule colonne en plusieurs colonnes
Le fractionnement d'une valeur de colonne unique en plusieurs colonnes est un scénario courant dans le traitement des données. Voici une solution 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)) END AS last_name FROM YourTable;</code>
Cette requête utilise l'instruction CASE pour déterminer s'il y a des espaces dans la colonne nom. Si un espace est trouvé, la première instruction conditionnelle extrait les caractères avant l'espace et les affecte à la colonne prénom. Pour les valeurs sans espaces, attribuez-vous directement.
Pour la colonne last_name, une approche similaire est utilisée. Cependant, pour éviter d'inclure le deuxième prénom, nous utilisons la fonction SUBSTRING pour extraire directement la partie après les espaces. Cela garantit que le nom de famille est extrait avec précision même s'il y a plus de deux mots dans le nom d'origine.
Les résultats de la requête contiendront deux colonnes : first_name et last_name. Il est important de noter que cette méthode n’est pas parfaite et peut ne pas gérer parfaitement les formats de noms complexes. Cependant, il constitue un bon point de départ pour diviser une valeur de colonne unique en plusieurs colonnes à l'aide de SQL.
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!