none
Comando SQL RRS feed

  • Pergunta

  • Boa tarde

    Tenho um campo na tabela de produto que armazena codigo de barras , não sei se posso usar o operador Like pra isso, mas queria trazer todos os produtos que não começam com A INICIAL  0789, o nome do campo é PROCODAUX, na tabela PRODUTO.

    quarta-feira, 12 de agosto de 2020 20:57

Respostas

  • Dyego,

    Sim, sim, era justamente para testar, veja desta forma:

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,4) <> '0789'
    Go

    o Segundo exemplo assim:

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,4) In ('0769','0779')
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Dyego Rodrigues quarta-feira, 12 de agosto de 2020 22:15
    quarta-feira, 12 de agosto de 2020 22:12

Todas as Respostas

  • Dyego,

    Poder você pode, mas precisamos saber qual é o tipo de dados que você esta utilizando?

    Normalmente o Like é aplicado aos tipos de dados Char(), Varchar(), NVarchar(), NChar()....

    Qual é a sua preocupação?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 12 de agosto de 2020 21:30
  • Ele é um char(20)

    No caso, código de barras correto tem que começar com 0789

    O cliente efetuou vários cadastros errados por exemplo alguns estão com 079, 069, 

    ai seria pra identificar todos que não começam com 0789, no caso é o filtro é que os códigos que NÃO comecem com 0789


    quarta-feira, 12 de agosto de 2020 21:36
  • Dyego,

    Certo, perfeito, que bom que esta utilizar um campo caracter, ressalto que o mesmo se tiver um tamanho fixo, seria mais indicado trabalhar com Char(20) ao invês do Varchar(20).

    Acredito que ao invês de usar o operador Like, podemos pensar em usar a função SubString() por questões das suas regras de negócio.

    Veja se este exemplo te ajuda:

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,3) <> '0789'
    Go

    Outra possibilidade aplicando a função SubString():

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,3) In ('0769','0779')
    Go

    O Like seria mais interessante se você fosse realizar buscar aproximadas conforme o usuário fosse digitando, mas pelo que entendi não é o que você necessita.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 12 de agosto de 2020 21:47
  • Sim ele é um char 20

    Mas sobre a consulta, A primeira ele trouxe todos os códigos de barras da tabela ate mesmo os que tem 0789 na frente, a intenção é trazer o que não começam com esses números na frente. 

    E a segunda consulta não retornou nada


    quarta-feira, 12 de agosto de 2020 21:58
  • Dyego,

    Sim, sim, era justamente para testar, veja desta forma:

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,4) <> '0789'
    Go

    o Segundo exemplo assim:

    Select ColunaCodBarras From Tabela
    Where SubString(ColunaCodBarras,1,4) In ('0769','0779')
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Dyego Rodrigues quarta-feira, 12 de agosto de 2020 22:15
    quarta-feira, 12 de agosto de 2020 22:12
  • Deu certo obrigado, obrigado Junior
    quarta-feira, 12 de agosto de 2020 22:15
  • Deu certo obrigado, obrigado Junior
    Disponha!

    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 12 de agosto de 2020 22:55