Início > PostgreSQL, SQL Server, Virtual PASS BR > Delimitando campos no SQL Server

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!

  1. ROBSON ALVES DA SILVA
    13/12/2012 às 21:48

    Para o mysql tem esse comando?

    • 13/12/2012 às 21:59

      Creio que seja assim…
      select substring_index(nome_completo, ‘ ‘, 1)

  2. Diego Freitas
    14/12/2012 às 08:07

    Acho q o dentinho deveria pagar o açaí…
    Esse zouza é o cara!

  3. Tasso Gomes
    23/09/2013 às 16:30

    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 !!

  1. No trackbacks yet.

Deixe uma resposta

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s

%d blogueiros gostam disto: