leetcode-sql数据库面试题冲刺(高频SQL五十题)

题目:

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

你可能感兴趣的:(sql,测试面试,数据库,leetcode,sql)