我最近开始使用sql进行数据操作。所以,原谅我,如果这是太基本了。我有以下格式的数据表1。
id pg_a pg_b
12 1 0
35 1 1
46 0 1
我想把它转换成下表所示的长格式。
id pg value
12 a 1
12 b 0
35 a 1
35 b 1
46 a 0
46 a 1
我有一个sql查询使用case的时候,但是运气不好。在两个case语句中,查询只执行第一个case语句。
以下是查询:
select id,
(case when pg_a is not null then pg_a
when pg_b is not null then pg_b
else null
end) AS pg,
(case when pg_a is not null then a
when pg_b is not null then b
else null
end) AS value
from table1
我需要做什么不同的事情?任何提示都将不胜感激。
先谢谢你。
1条答案
按热度按时间db2dz4w81#
可以使用横向连接:
如果您是sql新手,您可能会更习惯使用sql
union all
: