Delimitando campos no SQL Server

Hoje um amigo (dentinho) estava com a seguinte situação:
Estou precisando de um comando igual ao split_part (delimitador) do PostgreSQL para usar no SQL Server, preciso pegar o primeiro nome de uma pessoa (que esteja separado por espaço),  exemplo: Tenho o nome: Alex Souza e preciso retornar somente Alex.

Pesquisando um pouco encontramos o seguinte comando que resolve o problema, não como o split_part (que vc pode especificar até qual pedaço quer retornar) , mas resolveu o que ele estava precisando, segue o comando abaixo:

— SQL Server

— Exemplo
SELECT Substring(‘Alex Souza‘, 1,charindex(‘ ‘,’Alex Souza‘))

Retorna
Alex


ou crie a seguinte função:

Create Function [dbo].[retornaCampo](@texto as varchar(max), @separador as varchar(1), @campo as int )
returns varchar(max)
begin
 declare @resultado as varchar(max)
 declare @i as int
 
 select @i = 1, @resultado = @texto
 
 while @i <> @campo
 begin
  select @resultado = substring(@resultado,charindex(@separador,@resultado)+1,len(@texto))
 
  select @i = @i + 1
 end
 
 if charindex(@separador,@resultado)>1
  select @resultado = substring(@resultado,1,charindex(@separador,@resultado)-1)
 else
  select @resultado = substring(@resultado,1,len(@resultado))
 
 return @resultado
end

— Exemplo
SELECT [DBTeste].[dbo].[retornaCampo](‘teste1;Teste 2;Teste3;1;2′,’;’,3)

— Retorna
Teste 3

— JÁ NO POSTGRES (http://www.postgresql.org/docs/8.3/static/functions-string.html)
SELECT split_part (‘Alex Souza ‘,’ ‘, 1)
Retornar: Alex

SELECT split_part (‘Alex Souza’,’ ‘, 2)
Retornar: Souza

 

Vejam também:

T-SQL – Simulando o FN_SPLIT sem uso da função

Split no SQL Server

Fica a dica!
Abraço!

Anúncios

4 comentários em “Delimitando campos no SQL Server

  1. Muito boa função e muito útil, me ajudou bastante a limpar dados desnecessários de uma query… a função é bem mais eficiente do que o exemplo do charindex no começo do post !!

    Blog toplist do google, procurando por uma solução, foi o segundo link exibido pelo google !!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s