Search code examples
sqlperformanceselectconditional-statementsnetezza

SQL Where Condition having 15+ different strings for one column


I would like to implement for 1 column multiple specific parameters like:

select * from table1 
where column1 = a or column1 = b or column1  = c ...

Can it be done in a better way (the SQL Statement in Use is over 10 lines long with the OR statements it'll grow another 10 lines O.o and it'll make the code much slower!)


Solution

  • You can use in:

    select t.*
    from t
    where column in ( . . . );
    

    The in list is pretty equivalent to a bunch of or conditions. There are some nuances. For instance, all the values in the in list will be converted to the same type. If one is a number and the rest are strings, then all will be converted to strings -- perhaps generating an error.

    For performance, you want an index on t(column).