I have a table like this:
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