sql >> Database >  >> RDS >> Sqlserver

SQL Server 2005:string splitsen in array en array(x) krijgen?

Ik ga er hier van uit dat er altijd precies 4 delen zijn.

Zo ja, dan zou je / . kunnen vervangen met . en gebruik de mooie ingebouwde ParseName functie. Het enige probleem met uw voorbeeld is dat het vanaf het einde telt, dus u moet voorzichtig zijn met welk deel u wilt:

DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');

SELECT Parsename(@test, 4),--returns Peter
       Parsename(@test, 3),--returns Parker
       Parsename(@test, 2),--returns Spiderman
       Parsename(@test, 1) --returns Marvel

Als er een variabel aantal onderdelen is, moet je een functie voor het splitsen van strings vinden om dit voor je te doen, er is geen goede ingebouwd. Veel opties kunnen worden gevonden door SO te zoeken:https://stackoverflow.com/search?q=[sql+server]+string+split

Waarschuwing - als je een nummer probeert te gebruiken met PARSENAME anders dan 1-4, is het resultaat altijd NULL.



  1. PostgreSQL 9.2.1 verbinden met Hibernate

  2. MySQL sorteren op een berekening

  3. Dynamische vervolgkeuzelijstwaarde uit database

  4. MySQL - Hoe beperk je één resultaat per ID?