答案 0 :(得分:2)
示例数据:
create table test (
custname text,
computer numeric,
monitor numeric,
software numeric);
insert into test values
('Alison', 345.89, 123.45, 78.78),
('Jason', 435.34, 158.23, 243.54);
查询:
select
custname "Customer",
unnest(array['Computer', 'Monitor', 'Software']) "Item type",
unnest(array[computer, monitor, software]) "Amount"
from test;
Customer | Item type | Amount
----------+-----------+--------
Alison | Computer | 345.89
Alison | Monitor | 123.45
Alison | Software | 78.78
Jason | Computer | 435.34
Jason | Monitor | 158.23
Jason | Software | 243.54
(6 rows)
如果unnest()
不可用,您可以使用union
:
select custname "Customer", 'Computer' "Item type", computer "Amount" from test
union select custname, 'Monitor', monitor from test
union select custname, 'Sofware', software from test
order by 1, 2;