View Single Post

   
  #3 (permalink)  
Old 03-01-2008, 02:46 PM
Erland Sommarskog
 
Posts: n/a
Default Re: sql operator question

ll (barn104_1999@yahoo.com) writes:
> I'm working with a SQL statement to select from tables and only return
> that which matches the semester AND value of 'N'. The statement below
> does return results according to my criteria, but it also returns all
> of the other results following the semester criteria that don't have a
> value of 'N'.


> WHERE Semester = 'FA-SP' OR Semester = 'FA' OR Semester = 'SP'
> AND Out8 = 'N'
> order by AMS_Courses.CourseCatID


AND binds tighter than OR, so your WHERE clause says:

WHERE Semester = 'FA-SP' OR
Semester = 'FA' OR
(Semester = 'SP' AND Out8 = 'N')
order by AMS_Courses.CourseCatID

You need to add parentheses:

WHERE (Semester = 'FA-SP' OR Semester = 'FA' OR Semester = 'SP')
AND Out8 = 'N'
order by AMS_Courses.CourseCatID

In this case you could also use the IN operator:

WHERE Semester IN ('FA-SP', 'FA', 'SP')
AND Out8 = 'N'
order by AMS_Courses.CourseCatID



--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx
Reply With Quote