sql如何查询以下需求

比如数据表结构是

idabtarget
1a1b1a1
2a2b2b2
3a3b3b3
4a4b4b8
5a5b5a5

如果target列和a列相等就返回b列,如果target列和b列相等就返回a列结果,不相等就不返回,列的数据结构都是字符串
期望的查询结果是 b1, a2, a3,b5
求大神指导!能不能有优雅一点的写法

阅读 2.3k
2 个回答

select if(target = a, b, a) as 字段名 from table where target = a or target = b;

select t.b
  from table t
 where t.a = t.target
union
select t.a
  from table t
 where t.b = t.target
推荐问题