-2

Can we do use an in clause with case

sql_query=f"""SELECT * FROM table1
where column1 in ('{list_of_values}')
order by CASE
WHEN column2 like'a%' THEN 1
WHEN column2 like'b%' THEN 2
WHEN column2 like'c%' THEN 3
ELSE 99 END;
"""

I am not getting any value in return but when I try

sql_query=f"""SELECT * FROM table1
where column1 = '{value1}'
order by CASE
WHEN column2 like'a%' THEN 1
WHEN column2 like'b%' THEN 2
WHEN column2 like'c%' THEN 3
ELSE 99 END;
"""

I get a value in return. What am I doing wrong in the first query. Thanks.

Tanu
  • 1,286
  • 4
  • 16
  • 35

1 Answers1

1
where column1 in ('{list_of_values}')

your '{list_of_values}' isn't going to work, it needs to be each individual item comma separated and within individual quotes e.g. where column1 in ('a','b','c','etc')

isamu
  • 195
  • 9