none
Duvida Select RRS feed

  • Pergunta

  • Bom dia.

    Estou com uma dúvida muito grande, e isso está impactando no lançamento do release do sistema que desenvolvemos.

    Tenho 3 Campos na minha tabela sendo eles:

    FirstName
    MiddleName

    LastName

    Vamos supor que tenho 3 registros na minha tabela preenchendo esses mesmos campos.

    1º Registro:
    FirstName       MiddleName     LastName

    Joao                Da                      Silva

    2º Registro
    FirstName       MiddleName     LastName

    Joao                                          Da Silva

    3º Registro
    FirstName       MiddleName     LastName
    Joao                 Da Silva             NULL


    Preciso passar em minha clausula WHERE uma maneira de dar o LIKE nesses tres campos para trazer os registros (desprezando os campos em brancos ou com espaço e os campos NULL)

    Hoje o meu SELECT está da seguinte maneira:

    SELECT FirstName, MiddleName, LastName FROM tabela WHERE  FirstName + ' ' + MiddleName + ' ' + LastName LIKE '%SILVA%'  (deste jeito ele acaba trazendo apenas o registro que possui os 3 campos preenchidos)

    Onde se eu Filtrar por "JOAO", ele deveria ignorar os campos nulos ou vazios e trazer os 3 registros.

    Será que alguém tem alguma sugestão da melhor forma que eu deveria fazer ?

    Desde já agradeço a disponibilidade e atenção de todos.

    terça-feira, 17 de novembro de 2015 10:36

Respostas

  • Bom dia,

    Para evitar o problema com os campos nulos você pode utilizar a função IsNull ou Coalesce. Ex:

    WHERE
        FirstName + coalesce(' ' + MiddleName, '') + coalesce(' ' + LastName, '') LIKE '%SILVA%'

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta Danilo Telles terça-feira, 17 de novembro de 2015 16:33
    • Marcado como Resposta Marcos SJ quarta-feira, 18 de novembro de 2015 13:45
    terça-feira, 17 de novembro de 2015 11:34