所以我创建了一个包含一些看起来像这样的小兵的表:
CREATE TABLE Minion(MinionID varchar(10), gold int, Atk int, def int);
的值为:
INSERT INTO Minion VALUES ('min001', 15, 5, 20);
INSERT INTO Minion VALUES ('min002', 20, 7, 30);
INSERT INTO Minion VALUES ('min003', 18, 8, 17);
INSERT INTO Minion VALUES ('min004', 30, 15, 100);
INSERT INTO Minion VALUES ('min005', 5, 3, 9);
INSERT INTO Minion VALUES ('min006', 60, 23, 150);
INSERT INTO Minion VALUES ('min007', 10, 8, 20);
INSERT INTO Minion VALUES ('min008', 65, 40, 250);
INSERT INTO Minion VALUES ('min009', 300, 75, 550);
INSERT INTO Minion VALUES ('min010', 300, 65, 600);
INSERT INTO Minion VALUES ('min011', 300, 80, 400);
所以我想知道,如果没有LIMIT和OFFSET,仍有可能获得第二高的,例如仆从们?
答案 0 :(得分:2)
要获得第二个最高值,您可以将max应用于排除最大值的集合:
select max(atk) from Minion where atk <> (select max(atk) from Minion)
使用您的样本数据,这将返回atk = 75。
但是为什么不使用限制和偏移等功能?