Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como faço para dividir uma string para que eu possa acessar o item x?


Não acredito que o SQL Server tenha uma função de divisão interna, portanto, além de uma UDF, a única outra resposta que conheço é sequestrar a função PARSENAME:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME pega uma string e a divide no caractere ponto. Ele recebe um número como seu segundo argumento e esse número especifica qual segmento da string retornar (trabalhando de trás para frente).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

Problema óbvio é quando a string já contém um ponto. Eu ainda acho que usar uma UDF é a melhor maneira... alguma outra sugestão?