该题目来源于力扣:
题目要求:
表: Triangle
+-------------+------+ | Column Name | Type | +-------------+------+ | x | int | | y | int | | z | int | +-------------+------+ 在 SQL 中,(x, y, z)是该表的主键列。 该表的每一行包含三个线段的长度。
对每三个线段报告它们是否可以形成一个三角形。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入: Triangle 表: +----+----+----+ | x | y | z | +----+----+----+ | 13 | 15 | 30 | | 10 | 20 | 15 | +----+----+----+ 输出: +----+----+----+----------+ | x | y | z | triangle | +----+----+----+----------+ | 13 | 15 | 30 | No | | 10 | 20 | 15 | Yes | +----+----+----+----------+
思路流程:
什么是case...when语句?
-基本语法:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE resultN
END
在简单 CASE 语句中,expression 将与每个 value 进行比较,当找到匹配时,返回相应的 result。如果没有匹配的值,则返回 ELSE 部分的结果(如果指定了 ELSE 部分)。
-特殊搜索语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
在搜索 CASE 语句中,每个 condition 是一个独立的布尔表达式,而不是与单个表达式进行比较。当第一个满足的条件被找到时,返回相应的 result。如果没有任何条件满足,则返回 ELSE 部分的结果(如果指定了 ELSE 部分)。
代码实现:
# Write your MySQL query statement below
SELECT
x,
y,
z,
CASE
WHEN x+y>z AND x+z>y AND y+z>x THEN 'Yes'
ELSE 'No'
END AS 'triangle'
FROM Triangle
;