Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL:ottieni la sottostringa dopo il primo spazio e il secondo spazio in colonne separate

SQL Server non dispone di ottime funzioni di manipolazione delle stringhe. Questo è più facile con le sottoquery:

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

Tuttavia, starei molto attento, perché non tutte le persone hanno nomi in tre parti. E altri hanno suffissi (JR, SR) e altre complicazioni.