I have a table like this:
x
key,c1,c2,c3,
--------------
key1,v1,v2,v3,
..
keyn,vn,,,,,
I am querying for column values whose length is 0 using a statement like this:
SELECT key FROM table WHERE length(c1) = 0 OR length(c2) = 0 OR ... OR length(cn) = 0;
I’d like to have a text associated with the key indicating which condition lead to the match. so something like
SELECT key,"column 1 length is zero" OR "column 2 length is zero" OR "column N length is zero" FROM table WHERE length(c1) = 0 or length(c2) = 0 or or length(cn) = 0;
not sure how to do this
Advertisement
Answer
You can use a CASE
expression for this. On the other hand, note that in SQLite you can use MIN()
to simplify the WHERE
clause:
select
key,
case
when length(c1) = 0 then 'column 1'
when length(c2) = 0 then 'column 2'
when length(c3) = 0 then 'column 3'
end || ' is length 0' which
from mytable
where min(length(c1), length(c2), length(c3)) = 0