Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL- Obtenez la sous-chaîne après le premier espace et le deuxième espace dans des colonnes séparées

SQL Server n'a pas de très bonnes fonctions de manipulation de chaînes. C'est plus facile avec les sous-requêtes :

select firstname,
       stuff(reverse(stuff(reverse(legalname), 1, len(lastname) + 1, '')),
             1, len(firstname) + 1, '')
from (select legalname,
             left(legalname, charindex(' ', legalname) - 1) as firstname,
             right(legalname, charindex(' ', reverse(legalname)) - 1) as lastname
      . . .
     ) c

Cependant, je serais très prudent, car tout le monde n'a pas de noms en trois parties. Et d'autres ont des suffixes (JR, SR) et d'autres complications.