Usando comando Like
Pessoal,
Tenho um campo em uma tabela que guarda o telefone de clientes. O telefone é um campo do tipo varchar2 e é guardado da seguinte forma: 254-6395, 254-2478, 455-4859...
Como posso montar uma consulta para pesquisar todos os clientes que tem o telefone que comece com 254 ou com 455 ou qualquer outro prefixo que será passado como parâmetro para a consulta, mas se houver algum telefone que no final possua a mesma combinação que no prefixo passado, não pode ser exibido no resultado da query. Ou seja, exibir somente os telefones que comecem com 455. Se houver um cliente com telefone que seja = a 452-2455, ele deverá ser ignorado.
SELECT *
FROM CLIENTES
WHERE FONE_CLIENTE LIKE ????
Consigo fazer isso com o Like ou há outro comando melhor?
Obrigada
Tenho um campo em uma tabela que guarda o telefone de clientes. O telefone é um campo do tipo varchar2 e é guardado da seguinte forma: 254-6395, 254-2478, 455-4859...
Como posso montar uma consulta para pesquisar todos os clientes que tem o telefone que comece com 254 ou com 455 ou qualquer outro prefixo que será passado como parâmetro para a consulta, mas se houver algum telefone que no final possua a mesma combinação que no prefixo passado, não pode ser exibido no resultado da query. Ou seja, exibir somente os telefones que comecem com 455. Se houver um cliente com telefone que seja = a 452-2455, ele deverá ser ignorado.
SELECT *
FROM CLIENTES
WHERE FONE_CLIENTE LIKE ????
Consigo fazer isso com o Like ou há outro comando melhor?
Obrigada
Barbara.michele
Curtidas 0
Respostas
Afarias
29/09/2004
SELECT *
FROM CLIENTES
WHERE FONE_CLIENTE LIKE ´345¬´
ou
SELECT *
FROM CLIENTES
WHERE FONE_CLIENTE STARTING ´345´
(só não lembro se ORACLE (acho q é isso q está usando) suporta a sintaxe STARTING)
T+
FROM CLIENTES
WHERE FONE_CLIENTE LIKE ´345¬´
ou
SELECT *
FROM CLIENTES
WHERE FONE_CLIENTE STARTING ´345´
(só não lembro se ORACLE (acho q é isso q está usando) suporta a sintaxe STARTING)
T+
GOSTEI 0
Vinicius2k
29/09/2004
Colega,
Instrução :
Execução :
o [b:6fbb80866e]¬[/b:6fbb80866e] é o caracter coringa que determina qual parte do campo ´não importa´... e ele pode variar dependendo do banco de dados...
Iniciado por -> Texto + [b:6fbb80866e]´¬´[/b:6fbb80866e]
Terminado por -> [b:6fbb80866e]´¬´[/b:6fbb80866e] + Texto
Qualquer parte -> [b:6fbb80866e]´¬´[/b:6fbb80866e] + Texto + [b:6fbb80866e]´¬´[/b:6fbb80866e]
T+
Instrução :
select
{lista de campos}
from
TABELA
where
CAMPO like :textoExecução :
SuaQuery.Close; SuaQuery.ParamByName(´texto´).AsString:= Texto + ´¬´; SuaQuery.Open
o [b:6fbb80866e]¬[/b:6fbb80866e] é o caracter coringa que determina qual parte do campo ´não importa´... e ele pode variar dependendo do banco de dados...
Iniciado por -> Texto + [b:6fbb80866e]´¬´[/b:6fbb80866e]
Terminado por -> [b:6fbb80866e]´¬´[/b:6fbb80866e] + Texto
Qualquer parte -> [b:6fbb80866e]´¬´[/b:6fbb80866e] + Texto + [b:6fbb80866e]´¬´[/b:6fbb80866e]
T+
GOSTEI 0
Paulo_amorim
29/09/2004
Olá
Se seus prefixos têm sempre 3 números, pode-se fazer a seguinte query - estou supondo banco ORACLE, qualquer coisa substitua a função Substr pela adequada
Espero que ajude
Até+
Se seus prefixos têm sempre 3 números, pode-se fazer a seguinte query - estou supondo banco ORACLE, qualquer coisa substitua a função Substr pela adequada
SELECT * FROM fone_cliente WHERE substr(fone,1,3) = :p1 AND substr(fone,5,7) NOT LIKE ´¬´ || :p1 || ´¬´
Query1.ParamByName(´p1´).AsString := <seu parametro>
Espero que ajude
Até+
GOSTEI 0