例如我们有下表 列
id a b
1 1 2
2 3 4
3 5 6
4 7 8
我们正在寻找a栏和b栏中的值7 有没有办法查询表并返回列的名称' a' ????
答案 0 :(得分:1)
首先选择a或b为7的所有行。然后使用case语句返回“7”列的名称。
select id,
case when a = 7
then 'a'
else 'b'
end
from mytable
where 7 in (a,b)
使用union all
select id , 'a'
from mytable where a = 7
union all
select id , 'b'
from mytable where b = 7
如果同一行的a和b都可以是7,那么union all
查询将返回行的ID,其中每列的值都是7,而第一个查询只返回值{{ 1}}。