Usuário com melhor resposta
comando like

Pergunta
-
Boa tarde pessoal!
Estou com uma duvida ao utilizar o like, eu testei e nao deu certo. Preciso fazer o seguinte
where estrutura like '1.01.02.04%' or estrutura like '1.01.02.05%'
Preciso pegar documentos com a estrtura sempre que comeca com '1.01.02.04%' ou com a estrtura '1.01.02.05%' .
Como que eu especifico o comeco dessas duas estruturas usando apenas o like?
Obrigada
Respostas
-
Novaes,
Retificando, no seu caso você poderá fazer dessa forma
WHERE estrutura like '1.01.02.0[45]%'
A condição irá buscar as estruturas que começam com 1.01.02.0 mais um ultimo digito podendo ser 4 ou 5.
@Fabrizzio, sei disso, por isso mesmo disse que teria que especificar o nome completo de cada estrutura que você deseja buscar
Espero ter ajudado, se for o caso, marque como útil e como resposta.
Rafael Godoi Sabadin
http://www.linkedin.com/pub/rafael-godoi-sabadin/30/b20/a0b
Classifique as respostas. O seu feedback é essencial.- Sugerido como Resposta Rafael Godoi Sabadin sexta-feira, 29 de julho de 2011 17:20
- Marcado como Resposta NovaesB sexta-feira, 29 de julho de 2011 18:17
Todas as Respostas
-
Boa tarde!
Infelizmente não existe uma maneira de listar vários nomes com apenas um like.
O que você poderia fazer seria usar o operador IN, porém teria que especificar o nome completo de cada estrutura que você deseja buscar.
Veja que este assunto foi tratado recentemente em 2 fóruns:
Like + IN e Like vários registros
Espero ter ajudado, se for o caso, marque como útil e como resposta.
Rafael Godoi Sabadin
http://www.linkedin.com/pub/rafael-godoi-sabadin/30/b20/a0b
Classifique as respostas. O seu feedback é essencial.
-
Novaes,
Não entendi sua duvida, veja este exemplo:
DECLARE @t1 TABLE(ID VARCHAR(100))
INSERT INTO @t1 VALUES
('1.01.02.04.56781'),
('1.01.02.04.56781'),
('1.01.02.05.56781'),
('1.01.02.06.56781'),
('1.01.02.05.56781'),
('1.01.02.07.56781')
SELECT ID
FROM @t1
WHERE ID LIKE '1.01.02.05%'
OR ID LIKE '1.01.02.04%'
Voce pode aninhar likes, mas no caso, ele trara os que começam com (No meu exemplo) tudo antes do %.
Se preferir poste como estão seus dados e como gostaria que seu select retornasse.
@Rafael,
O in pode ajudar, mas o in não possui caracter coringa, como o % ou o _ para o like.
Fabrizzio A. Caputo
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCTS SQL Server 2008
Developer Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com -
Novaes,
Retificando, no seu caso você poderá fazer dessa forma
WHERE estrutura like '1.01.02.0[45]%'
A condição irá buscar as estruturas que começam com 1.01.02.0 mais um ultimo digito podendo ser 4 ou 5.
@Fabrizzio, sei disso, por isso mesmo disse que teria que especificar o nome completo de cada estrutura que você deseja buscar
Espero ter ajudado, se for o caso, marque como útil e como resposta.
Rafael Godoi Sabadin
http://www.linkedin.com/pub/rafael-godoi-sabadin/30/b20/a0b
Classifique as respostas. O seu feedback é essencial.- Sugerido como Resposta Rafael Godoi Sabadin sexta-feira, 29 de julho de 2011 17:20
- Marcado como Resposta NovaesB sexta-feira, 29 de julho de 2011 18:17
-
Novaes
usando parte do script do Fabrizzio este modo será um poyuco mais performático (como se o like fosse :) ) mas neste modo não temos o or
DECLARE @t1 TABLE(ID VARCHAR(100)) INSERT INTO @t1 VALUES ('1.01.02.04.56781'), ('1.01.02.04.56781'), ('1.01.02.05.56781'), ('1.01.02.06.56781'), ('1.01.02.05.56781'), ('1.01.02.07.56781') SELECT ID FROM @t1 WHERE ID LIKE '1.01.02.0[4-5]%'
Att.
Marcelo FernandesMCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba