sql >> Database >  >> RDS >> Sqlserver

sql om een ​​string van de naam van een persoon uit elkaar te halen en de initialen uit te voeren

Dit zou moeten werken voor zowel "Voornaam Achternaam" als "Voornaam Tussennaam Achternaam" combinaties.

DECLARE @name AS NVARCHAR(50) 
SET @name = 'Firstname Middle Lastname' 


SELECT SUBSTRING(@name, 1, 1) +     --First initial
    SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) +    --Middle/Last initial
    CASE WHEN 0 <>  CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words 
        THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1)  --Last initial
    ELSE '' --Have to add empty string to avoid NULLing entire result
    END

Natuurlijk, als gebruikers een spatie hebben in een van hun namen om de een of andere reden zul je een probleem hebben om dit te ontleden, maar ik vermoed dat dat sowieso het geval zou zijn als je je namen niet in aparte velden opslaat.



  1. Waarom heeft de instelling van de Django-tijdzone invloed op de epochetijd?

  2. Bereik van transactie-isolatieniveau

  3. een limiet van het aantal SQL Server-verbindingen?

  4. kolom bestaat niet, zelfs niet bij gebruik van het trefwoord 'as'