Sql 在两个新列中显示数据

Sql 在两个新列中显示数据,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一张表,在那里我储存了地质样品,它们的价值是金和银 CREATE TABLE samples ( id INT, element VARCHAR (10), value INT, ); INSERT INTO samples VALUES (1, 'gold', 100); INSERT INTO samples VALUES (1, 'silver', 150); INSERT INTO samples VALUES (2, 'gold', 200);

我有一张表,在那里我储存了地质样品,它们的价值是金和银

CREATE TABLE samples
(
     id INT, 
     element VARCHAR (10), 
     value INT, 
);

INSERT INTO samples VALUES (1, 'gold', 100);
INSERT INTO samples VALUES (1, 'silver', 150);
INSERT INTO samples VALUES (2, 'gold', 200);
INSERT INTO samples VALUES (2, 'silver', 300);
身份证件 要素 价值 1 金 100 1 银 150 2 金 200 2 银 300
您可以使用条件聚合:

select id,
       sum(case when element = 'gold' then value end) as gold,
       sum(case when element = 'silver' then value end) as silver
from samples s
group by id;

您可以使用条件聚合:

select id,
       sum(case when element = 'gold' then value end) as gold,
       sum(case when element = 'silver' then value end) as silver
from samples s
group by id;

它就像一个符咒!它就像一个符咒!