sql >> Databasteknik >  >> RDS >> Sqlserver

Hur delar jag en sträng så att jag kan komma åt objekt x?

Jag tror inte att SQL Server har en inbyggd delad funktion, så förutom en UDF är det enda andra svaret jag vet att kapa funktionen PARSENAME:

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME tar en sträng och delar den på punkttecknet. Det tar ett nummer som sitt andra argument, och det numret anger vilket segment av strängen som ska returneras (arbetar bakifrån och fram).

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

Uppenbart problem är när strängen redan innehåller en punkt. Jag tror fortfarande att det är det bästa sättet att använda en UDF...några andra förslag?



  1. OracleCommand SQL Parametrar Bindning

  2. Verkställighetsplanens inverkan på ASYNC_NETWORK_IO väntan – del 1

  3. Att få resultatet av dynamisk SQL till en variabel för sql-server

  4. Prestanda överraskningar och antaganden:Godtycklig TOPP 1