Salve grande galera oraclianos.
Galera fiquei encucado com uma parada, que me deparei hoje.
Fiz o seguinte select:
SELECT USER, T6155.*
FROM FORMA_PAGAMENTO_TIPO_TARIFA T6155
WHERE T6155.CD_OPERACAO_TRANSPORTE IN
(SELECT T6439.CD_OPERACAO_TRANSPORTE
FROM USUARIO_PROGRAMA_OPE_TPT T6439
WHERE T6439.CD_USUARIO = USER
AND T6439.CD_PROGRAMA = 'LTCC1110')
OR USER = 'CAMCOM01'
AND T6155.NR_SEQ_FORMA_PGT_TARIFA = 11426
porém eu estava conectado com o usuário CORPORATIVO, e ele me retornava todos os registros.
Ai então mudei o meu sql para o seguinte:
SELECT USER, T6155.*
FROM FORMA_PAGAMENTO_TIPO_TARIFA T6155
WHERE (T6155.CD_OPERACAO_TRANSPORTE IN
(SELECT T6439.CD_OPERACAO_TRANSPORTE
FROM USUARIO_PROGRAMA_OPE_TPT T6439
WHERE T6439.CD_USUARIO = USER
AND T6439.CD_PROGRAMA = 'LTCC1110')
OR USER = 'CAMCOM01')
AND T6155.NR_SEQ_FORMA_PGT_TARIFA = 11426
e me retornou somente o registro que eu queria.
Bom a pergunta em questão é a seguinte qual a diferença dos meus sql´s, quando eu coloco OR sem parentesis ele não interpreta o que está abaixo?
Dúvida de SQL.
-
- Rank: Programador Sênior
- Mensagens: 60
- Registrado em: Ter, 17 Jan 2006 1:45 pm
- Localização: Santa Catarina
Att.:
Alan Juliano Metzger
Programador Oracle
Inside System Informática
Msn/E-mail: alanjuliano@yahoo.com.br
Alan Juliano Metzger
Programador Oracle
Inside System Informática
Msn/E-mail: alanjuliano@yahoo.com.br
-
- Rank: Programador Júnior
- Mensagens: 29
- Registrado em: Dom, 11 Jul 2004 8:45 pm
- Localização: Guarulhos - SP
Isso aí é um problema de lógica. As linhas retornarão se todas as condições especificadas no where resultarem em Verdadeiro. Então veja, avaliar:
pode dar resultado diferente de avaliar
Verdadeiro AND Verdadeiro OR Falso
Verdadeiro AND (Verdadeiro OR Falso)
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes