Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: SQL Server
Expertise: Beginner
Mar 24, 1997



Application Security Testing: An Integral Part of DevOps

Querying a List

I've been trying to construct a query on the database to see if the value in a particular field matches a long list of correct answers. For example, I would like to pull out all FCODE values which match either 2, 5, 20, or any value between 10 and 15. I've tried:
SELECT * FROM Db WHERE fcode=2 OR fcode=5 OR 
     (fcode>=10 AND fcode<=15) OR fcode=20;
But this doesn't work. One would expect that the brackets or a similar structure would be necessary to maintain the proper mathematical order. As an alternative, I tried doing it the longer way by doing the following:
     WHERE fcode IN (2,5,10,11,12,13,14,15,20);
This is undesirable because I have a large amount of numbers. Also, it seems to crash when I do get a large number of entries. Do you have any ideas?

The longer format statement you showed in your example using the IN clause usually is the preferred course for shorter lists of possibilities. For cases where the list is long, the best alternative is usually to create a table that contains the long list, then construct a subquery:

     WHERE fcode IN (SELECT fcode FROM Code);
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date