none
Select retornando somente parte da string RRS feed

  • Pergunta

  • Boa tarde,

    Estou desenvolvendo um sistema em ASP para controle de acesso em um evento que vamos fazer aqui na empresa. O sistema está pronto e preciso agora confeccionar os crachás. O problema é que DEDICIRAM em cima da hora que o nome completo da pessoa não deve aparecer no crachá, somente o primeiro e o último nome.

    Para a confecção, estou fazendo etiquetas, que serão coladas no crachá. Fiz estas etiquetas no Word (mala direta) que busca a seguinte view no MySQL:

    SELECT     dbo.TBPessoas.CodigoPessoa, dbo.TBPessoas.CodigoFranquia AS Expr1, dbo.TBPessoas.NomeCompletoPessoa, dbo.TBPessoas.CargoPessoa, 
                          dbo.TBPessoas.TurmaPessoa, dbo.TBPessoas.CidadePessoa, dbo.TBPessoas.DocPessoa, dbo.TBPessoas.CrachaPessoa, dbo.TBLocalidades.CodigoCidade, 
                          dbo.TBLocalidades.NomeEstado, dbo.TBLocalidades.NomeCidade, dbo.TBLocalidades.TipoCidade, dbo.TBDeptos.*
    FROM         dbo.TBPessoas INNER JOIN
                          dbo.TBLocalidades ON dbo.TBPessoas.CidadePessoa = dbo.TBLocalidades.CodigoCidade INNER JOIN
                          dbo.TBDeptos ON dbo.TBPessoas.CargoPessoa = dbo.TBDeptos.CodigoDepto

    Como podem ver, esta view busca dados em três tabelas: TBPessoas (onde estão cadastrados os dados da credencial), TBLocalidades, onde estão as Cidades e TBDeptos, onde estão os departamentos.

    O foco na verdade é a tabela TBPessoas, que tem o campo NomeCompletoPessoa, que pelo próprio nome já dá pra saber que tem o nome completo da credencial.

    O grande problema é que no crachá não poderá aparecer José Joaquim da Silva Xavier, por exemplo. Neste caso teria que aparecer somente o primeiro e ultimo nome: José Xavier

    Tem alguma forma de fazer com que o Select retorna somente a Primeira e a Última palavra do campo NomeCompletoPessoa?

    No aguardo,

    terça-feira, 26 de março de 2013 21:02

Respostas

  • Experimente utilizar algumas funções do sql como substring e charindex, faça como no exemplo abaixo que vai funcionar:

    Create table #nomes (Nome varchar(800))
    
    insert into #nomes
    values ('José Joaquim da Silva Xavier')
    
    select 
    		substring(Nome,1,CHARINDEX(' ',Nome)) + ' ' + Reverse(substring(REVERSE(Nome),1,CHARINDEX(' ',REVERSE(Nome))))
    	from #nomes


    Alexandre Matayosi Conde Mauricio.

    terça-feira, 26 de março de 2013 21:19

Todas as Respostas

  • Experimente utilizar algumas funções do sql como substring e charindex, faça como no exemplo abaixo que vai funcionar:

    Create table #nomes (Nome varchar(800))
    
    insert into #nomes
    values ('José Joaquim da Silva Xavier')
    
    select 
    		substring(Nome,1,CHARINDEX(' ',Nome)) + ' ' + Reverse(substring(REVERSE(Nome),1,CHARINDEX(' ',REVERSE(Nome))))
    	from #nomes


    Alexandre Matayosi Conde Mauricio.

    terça-feira, 26 de março de 2013 21:19
  • Show Alexandre,

    Muito obrigado!!!

    quarta-feira, 27 de março de 2013 20:21