Home » SQL & PL/SQL » SQL & PL/SQL » difference between the two queries (Oracle 11g, Win7)
difference between the two queries [message #610466] Thu, 20 March 2014 07:12 Go to next message
nischalinn
Messages: 118
Registered: May 2012
Location: nepal
Senior Member
CREATE TABLE TEMP
(
	COL1 VARCHAR2(10),
	COL2 VARCHAR2(10),
	COL3 VARCHAR2(10),
	COL4 VARCHAR2(10),
);

INSERT INTO TEMP VALUES ('Y','N','1','NAME1');
INSERT INTO TEMP VALUES ('Y','N','2','NAME2');
INSERT INTO TEMP VALUES ('Y','N','3','NAME3');
INSERT INTO TEMP VALUES ('N','Y','4','NAME4');


Why do the following two query give different result? Please can anyone explain it to me?
select * from temp
where
	(col1 = 'Y' or col2 = 'N')
		and col3 = '1';
		
select * from temp
where
	col1 = 'Y' or col2 = 'N'
		and col3 = '1';	
Re: difference between the two queries [message #610468 is a reply to message #610466] Thu, 20 March 2014 07:15 Go to previous messageGo to next message
manubatham20
Messages: 566
Registered: September 2010
Location: Seattle, WA, USA
Senior Member

Have you ever heard about precedence of operators.
Re: difference between the two queries [message #610469 is a reply to message #610468] Thu, 20 March 2014 07:29 Go to previous message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
2nd is equivalent to:
select * from temp
where col1 = 'Y' 
or (col2 = 'N' and col3 = '1');


Previous Topic: pls 00103 error
Next Topic: variable value's length is not checked during compilition
Goto Forum:
  


Current Time: Fri Apr 19 05:00:09 CDT 2024