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

Come faccio a dividere una stringa in modo da poter accedere all'elemento x?

Non credo che SQL Server abbia una funzione di divisione incorporata, quindi oltre a un UDF, l'unica altra risposta che conosco è dirottare la funzione PARSENAME:

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

PARSENAME prende una stringa e la divide sul carattere punto. Prende un numero come secondo argomento e quel numero specifica quale segmento della stringa restituire (lavorando da dietro a davanti).

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

Il problema ovvio è quando la stringa contiene già un punto. Continuo a pensare che usare un UDF sia il modo migliore... altri suggerimenti?