如何为值为“1”的列选择特定列[MYSQL]

nhhxz33t  于 2022-12-22  发布在  Mysql
关注(0)|答案(1)|浏览(146)

有人知道在mysql中有一个查询可以得到下面的结果吗
| 姓名|A项|项目B|项目C|
| - ------| - ------| - ------| - ------|
| 琼|无|1个|1个|
| 李姓|1个|无|无|
我想选择名字Jhon,在列"项目B"和"项目C"上具有值1,因此结果将是:
| 姓名|项目B|项目C|
| - ------| - ------| - ------|
| 琼|1个|1个|
或选择"Lee"将:
| 姓名|A项|
| - ------| - ------|
| 李姓|1个|
我想知道那个问题的mysql查询代码,谢谢

e1xvtsh3

e1xvtsh31#

影子说:

with cte_jx as (
select name, 'itemA' as item_key, itemA as item_value from t_jx
union all
select name, 'itemB' as item_key, itemB as item_value from t_jx
union all
select name, 'itemC' as item_key, itemC as item_value from t_jx)
select *
  from cte_jx
 where name ='Jhon'
   and item_value <> 0;

结果:

name|item_key|item_value|
----+--------+----------+
Jhon|itemB   |         1|
Jhon|itemC   |         1|

根据需要将行旋转回列。

相关问题