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

SQL Server 2005:opdele streng i array og få array(x)?

Jeg antager her, at der altid er præcis 4 dele.

Hvis det er tilfældet, kan du erstatte / med . og brug den flotte indbyggede ParseName fungere. Det eneste problem fra dit eksempel er, at det tæller fra slutningen, så du skal være forsigtig med, hvilken del du vil have:

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

Hvis der er et variabelt antal dele, skal du finde en strengopdelingsfunktion for at gøre dette for dig, der er ikke en god indbygget. Mange muligheder kan findes ved at søge SO:https://stackoverflow.com/search?q=[sql+server]+string+split

Advarsel - hvis du prøver at bruge et tal med PARSENAME andet end 1-4, vil resultatet altid være NULL.



  1. MySQL Connector/C++ OS X 10.9 Mavericks og XCODE 5.0.2

  2. Sådan får du optagelse i while-løkke

  3. Flydende Nhibernate:Kan ikke oprette databaseforbindelse til MySQL

  4. En SaaS abonnementsdatamodel