none
Dúvida - Like RRS feed

  • Pergunta

  • Pessoal, minha dúvida é simples, existe a possibilidade de usar mais de um parametro no comando like? ou tem que concatenar vários para satisfazer a consulta.

     

    FUNCIONA:

     

    Code Snippet

    select * from dbo.Agrup

    where cdagr1 like '01%' or cdagr1 like '02%'

     

     

    É mais ou menos isso que quero fazer, é possível de alguma outra forma ou tem que concatenar mesmo?

    Code Snippet

    select * from dbo.Agrup

    where cdagr1 like ('01%' or '02%')

     

     

    Abraço

    quarta-feira, 6 de agosto de 2008 20:50

Todas as Respostas

  • Boa Tarde,

     

    Se você trabalhar um pouquinho a aplicação de Regular Expressions, poderá adaptá-las ao LIKE. Ex:

     

    Code Snippet

    CREATE TABLE #TBLTESTE (CAMPO VARCHAR(20))

     

    INSERT INTO #TBLTESTE VALUES ('ALGOV1+SUFIXO')

    INSERT INTO #TBLTESTE VALUES ('ALGOV2+SUFIXO')

    INSERT INTO #TBLTESTE VALUES ('ALGOV3+SUFIXO')

    INSERT INTO #TBLTESTE VALUES ('ALGOV4+SUFIXO')

     

    SELECT CAMPO FROM #TBLTESTE

    WHERE CAMPO LIKE '%V[1-2]%'

     

    DROP TABLE #TBLTESTE

     

     

    No seu caso acho que o comando abaixo funciona

     

    Code Snippet

    select * from dbo.Agrup

    where cdagr1 like '0[1-2]%'

     

    [ ]s,

     

    Gustavo

    quarta-feira, 6 de agosto de 2008 21:05
  • Boa Tarde Gustavo!

     

    Sua informação agregou para mim pois e não conhecia esse método, mas pelo que percebi é somente no caso dos registros serem semelhantes, e no caso de eu ter dois produtos com numeração diferente?

     

    exemplo:

     

    eu quero trazer no like os produtos com essas duas condições %181104 e %5489 .

     

    é possível sem utilizar dois likes?

     

    esse codigo abaixo nao funciona, é só pra ter uma idéia sobre o que eu quero saber de qual maneira é possível fazer sem utilizar dois comandos like.

    Code Snippet

    select cdprd from dbo.Produto

    where cdprd like ('%181104','%5489')

     

     

     

    Obrigado!!!

    quinta-feira, 7 de agosto de 2008 14:15
  • Olá Davi,

     

    Normalmente o poder do LIKE é subestimado de fato. Conhecendo Regular Expressions você pode fazer muita coisa com ele. No entanto, devido ao seu fraco desempenho, algumas vezes de fato precisamos de outras alternativas. É possível fazer o que você pretente (creio eu). Dê uma olhada no exemplo abaixo:

     

    Code Snippet

    CREATE TABLE #TBLTESTE (VALOR VARCHAR(80))

     

    INSERT INTO #TBLTESTE VALUES ('ALGO181104SUFIXO')

    INSERT INTO #TBLTESTE VALUES ('ALGO5489SUFIXO')

    INSERT INTO #TBLTESTE VALUES ('Um registro que tem 5489')

    INSERT INTO #TBLTESTE VALUES ('Um último registro que não atende a consulta')

     

    SELECT VALOR FROM #TBLTESTE

    WHERE VALOR LIKE '%[181104][5489]%'

     

    DROP TABLE #TBLTESTE

     

     

    [ ]s,

     

    Gustavo

    quinta-feira, 7 de agosto de 2008 15:59