如何在 mysql 中使用嵌套大小写找到三角形的类型(给出三边的长度)?
How to find Type of triangle(length of three sides are given) using nested case in mysql?
这个 MySQL 查询有什么问题?
它显示语法错误。
SELECT
CASE
WHEN A = B
CASE
WHEN A = C THEN 'Equilateral'
WHEN C < A + B THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN B = C
CASE
WHEN A < B + C THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM TRIANGLES;
您还必须为此添加一个 then
SELECT
CASE
WHEN A = B
THEN
CASE
WHEN A = C THEN 'Equilateral'
WHEN C < A + B THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN B = C
THEN
CASE
WHEN A < B + C THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM TRIANGLES;
不需要嵌套case
表达式:
SELECT (CASE WHEN A = B AND A = C THEN 'Equilateral'
WHEN A = B AND C < A + B THEN 'Isosceles'
WHEN A = B THEN 'Not A Triangle'
WHEN B = C AND A < B + C THEN 'Isosceles'
WHEN B = C THEN 'Not A Triangle'
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END) as type
FROM TRIANGLES;
这个 MySQL 查询有什么问题? 它显示语法错误。
SELECT
CASE
WHEN A = B
CASE
WHEN A = C THEN 'Equilateral'
WHEN C < A + B THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN B = C
CASE
WHEN A < B + C THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM TRIANGLES;
您还必须为此添加一个 then
SELECT
CASE
WHEN A = B
THEN
CASE
WHEN A = C THEN 'Equilateral'
WHEN C < A + B THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN B = C
THEN
CASE
WHEN A < B + C THEN 'Isosceles'
ELSE 'Not A Triangle'
END
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM TRIANGLES;
不需要嵌套case
表达式:
SELECT (CASE WHEN A = B AND A = C THEN 'Equilateral'
WHEN A = B AND C < A + B THEN 'Isosceles'
WHEN A = B THEN 'Not A Triangle'
WHEN B = C AND A < B + C THEN 'Isosceles'
WHEN B = C THEN 'Not A Triangle'
WHEN A + B > C AND A + C > B AND B + C > A THEN 'Scalene'
ELSE 'Not A Triangle'
END) as type
FROM TRIANGLES;