需求
建表语句
CREATE TABLE Greatests
(key1 CHAR(1) PRIMARY KEY,
x INTEGER NOT NULL,
y INTEGER NOT NULL,
z INTEGER NOT NULL);
INSERT INTO Greatests VALUES('A', 1, 2, 3);
INSERT INTO Greatests VALUES('B', 5, 5, 2);
INSERT INTO Greatests VALUES('C', 4, 7, 1);
INSERT INTO Greatests VALUES('D', 3, 3, 8);
注意这里的第一列改成了key1,如果是key会报错,可能是关键字或者是mysql版本等乱七八糟的原因
解答
SELECT
key1,
case when x >= y and x >=z THEN x
when y >=x and y >= z THEN y
ELSE z end as greatests
FROM
greatests