题目:
610.判断三角形
表: 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 |
±—±—±—±---------+
思路:
结合题目的查询条件为“对每三个线段报告它们是否可以形成一个三角形”:
a)满足任意两条边相加大于第三条边 即为 三条线段可以形成一个三角形的必要条件。
b)使用IF语句,IF(条件,TRUE,FALSE)来对形成三角形的必要条件进行判断。
代码:
SELECT x,y,z,
IF(x+y > z,(IF(x+z > y,(IF(y+z > x,'Yes','No')),'No')
),'No') AS triangle
FROM Triangle