Solved

SQL "OR" Clause question

Posted on 2012-03-26
5
323 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 73

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 73

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 73

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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

PL/SQL can be a very powerful tool for working directly with database tables. Being able to loop will allow you to perform more complex operations, but can be a little tricky to write correctly. This article will provide examples of basic loops alon…
If you have heard of RFC822 date formats, they can be quite a challenge in SQL Server. RFC822 is an Internet standard format for email message headers, including all dates within those headers. The RFC822 protocols are available in detail at:   ht…
Via a live example show how to connect to RMAN, make basic configuration settings changes and then take a backup of a demo database
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

708 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now