【发布时间】:2020-12-18 05:58:40
【问题描述】:
我遇到了一个问题,我试图将来自同一个表但条件不同的两个 SELECT 和添加到一个结果中。
代码如下:
DROP TABLE Match CASCADE CONSTRAINTS;
CREATE TABLE Match
(
Heim VARCHAR(50),
Gast VARCHAR(50),
HeimP NUMBER,
GastP NUMBER
);
INSERT INTO Match
VALUES ('Bayern München', 'Borussia Dortmund', 1, 1);
INSERT INTO Match
VALUES ('Borussia Dortmund', 'Bayern München', 0, 3);
INSERT INTO Match
VALUES ('Bayern München', 'Schalke', 3, 0);
INSERT INTO Match
VALUES ('Schalke', 'Bayern München', 0, 3);
COMMIT;
SELECT SUM(HeimP) AS Heimpoints
FROM Match
WHERE Heim = 'Bayern München';
SELECT SUM(GastP) AS Gastpoints
FROM Match
WHERE Gast = 'Bayern München';
【问题讨论】:
-
您的 RDBMS 和版本?我们可以假设'Bayern München' 永远不会同时是
Heim和Gast? (是否有CHECK约束来确定?) -
这是一个测试数据库,仅用于教育目的。但是,是的,我应该内置约束。感谢您的提示和您的时间:)