none
Consulta SQL

    Question

  • Boa tarde a todos,

    Estou com a seguinte missão aqui no trabalho

    Preciso fazer uma consulta SQL onde:

     

    Select marca from tablemarca

    where marca like '%Bosch%Kobla%

    No resultado, quero apareça só as marcas Bosch e Kobla e/ou algo que comece e/ou termine com Bosch ou Kobla. Por exemplo:

    Na minha tabela, tenho Bosch, Bosch - Baterias, Bosch Velas, e Kobla. Entre outros que não vão entrar na consulta.

    Então no resultado, além de aparecer Bosch e Kobla, gostaria que aparecesse os outros boschs da vida.

    Tentei utilizar os curingas []

    Eles me dão um resultado similar o que eu quero, mas ainda não é o desejado.

    Se alguém poder me ajudar, agradeço.


    Rodrigo Ataíde.
    Monday, December 12, 2011 8:26 PM

Answers

All replies

  • Boa tarde

     

    Não sei se entendi corretamente a sua questão, mas experimente mais ou menos desta forma:

     

    Select marca from tablemarca
    
    where (marca like '%Bosch%') or (marca like '%Kobla%')
    

     

    Espero que seja útil.

     


    Assinatura: Imoveis em Guarulhos
    Monday, December 12, 2011 8:38 PM
  • Boa tarde Gapimex,

    A solução é similar a esta apresentada por você.

    Vou descrever melhor meu cenário:

    Na minha tabela, tem uma coluna chamada marca, que contem as seguintes informações:

    - Ancora - Ignição

    - Ancora - Pastilha Lona

    - Ancora - Uniformes

    - Ancora Diversos

    - Bosch

    - Bosch Velas

    - Bosch-Baterias

    - Boechat

    - Borcol

    - Borflex

    - Bortec

    - Cabovel

    - Controil

    - Dayco

    - Dayco Tensionadores

    (Entre outras, mas estas marcas já servem para explicação).

    Na minha consulta SQL

    eu quero selecionar as marcas que contenham Bo e An.

    ou seja, quando fizesse o Select, virira como resultado:

    - Ancora - Ignição

    - Ancora - Pastilha Lona

    - Ancora - Uniformes

    - Ancora Diversos

    - Bosch

    - Bosch Velas

    - Bosch-Baterias

    - Boechat

    - Borcol

    - Borflex

    - Bortec

    - Cabovel

     

    Seria algo do tipo:

    Select marca from tablemarca

    where marca like '%bo%' and '%an%'

     

    Porém, a informação da marca será passada por um parametro qualquer.

    É algo desenvolvido pelo Reporting Services, mas o foco é a consulta SQL.

    Ou seja, ficando similar a isto:

    Declare @pmarca str

    select marca from tablemarca

    where marca like '%@pmarca%'

     

    Porém, não sai o resultado desejado.


    Rodrigo Ataíde.
    Tuesday, December 13, 2011 5:31 PM
  • Boa tarde

     

    Não sei como seria a montagem da consulta SQL neste caso, mas a princípio acho que são necessários 2 parâmetros, um que conteria 'bo' e outro que conteria 'an'.

     

    select marca from tablemarca
    
    where (marca like '%@pmarca1%') or (marca like '%@pmarca2%')
    

     

    Espero que seja útil.

     


    Assinatura: Imoveis em Guarulhos
    Tuesday, December 13, 2011 7:32 PM
  • Não funciona da maneira desejada.

    É assim, o parametro utilizado é do tipo Texto, o usuário digita as informações.

    Então ele pode entrar com o seguinte texto bo%an

    Da maneira como eu estou fazendo e apresentei para os meus superiores, ele vai pegar tudo o que tenha bo e an na mesma palavra, nesta sequencia.

    Porém há a necessidade de fazer dessa forma como descrevi em cima.

    Como disse, tentei utilizar os coringas [], o resultado que apresentar é similar ao desejado, mas apenas quando digito 1 letra de cada.

    Por exemplo, se eu digitar B%A, ele vai me mostrar todos que tenham B e todos que tenha A, mas a diferença é que se anulam. Vão pegar todos com B que não tenham A e vice e versa.

    E quando eu digito mais de uma letra, por exemplo, Bo e An, ele vai retornar todos que tenham B, todos que tenham O, todos que tenham A e todos que tenham N nas mesmas condições citadas do paragrafo anterior.

    Agradeço sua ajuda Gapimex, caso você consiga algum solução, por favor me repasse, já bati muito a cabeça com isso.


    Rodrigo Ataíde.
    Tuesday, December 13, 2011 7:59 PM
  • Boa Noite,

    Acredito que o FULL TEXT consiga atender essa necessidade.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    Saturday, December 17, 2011 10:11 PM
  • Basta fazer assim

    Select marca from tablemarca

    where (marca like '%Bosch' or marca like '%Kobla' or marca like 'Bosch%' or marca like 'Kobla%'. --Note que no começo % no começo lista apenas os registros que terminam com Bosch e Kobla e com o % no final lista apenas os registros que possuem Kobla no começo.


    Concatenado
    Monday, December 19, 2011 10:49 AM