Solved

SQL "OR" Clause question

Posted on 2012-03-26
5
329 Views
Last Modified: 2012-03-26
Is there a more simple way to do this instead of using the or clause?
SELECT  * from mtytable where (accountNo='1' or accountNo='345' or accountNo='2' or accountNo='4' or accountNo='4000' or ...)

I'm looking for something like
SELECT  * from mtytable where accountNo in ('1', '345', '2','4',...... )


Thanks!
0
Comment
Question by:chrisli
  • 3
5 Comments
 
LVL 29

Accepted Solution

by:
MikeOM_DBA earned 200 total points
ID: 37766908
Yes, exactly as you coded using the "IN ()" construct.
:p
0
 
LVL 74

Assisted Solution

by:sdstuber
sdstuber earned 300 total points
ID: 37766936
if your account numbers are in fact NUMBERS then you should remove the quotes, otherwise your syntax is correct as is


that would apply to both the OR and the IN versions
0
 

Author Comment

by:chrisli
ID: 37766975
I'm feeling pretty stupid now... But how come this is not returning any results?

DECLARE @accounts VARCHAR(max)
Select @accounts = COALESCE( '''' + LTRIM(RTRIM(AccountNo))+ ''', ' + @accounts,' ''' + LTRIM(RTRIM(AccountNo)) + '''') from mytable where [type]='newAccts'

SELECT     * FROM theothertable WHERE    (accountNo IN (@accounts))
0
 
LVL 74

Assisted Solution

by:sdstuber
sdstuber earned 300 total points
ID: 37766987
because you are using a variable.  a variable (a single value) and a list of values aren't the same thing.
0
 
LVL 74

Assisted Solution

by:sdstuber
sdstuber earned 300 total points
ID: 37766997
don't bother trying to construct the list,  simply use the query itself as the IN condition


select * from theothertable where accountno in
(select accountno from mytable where [type]='newAccts')
0

Featured Post

Forrester Webinar: xMatters Delivers 261% ROI

Guest speaker Dean Davison, Forrester Principal Consultant, explains how a Fortune 500 communication company using xMatters found these results: Achieved a 261% ROI, Experienced $753,280 in net present value benefits over 3 years and Reduced MTTR by 91% for tier 1 incidents.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
Via a live example, show how to take different types of Oracle backups using RMAN.
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question