【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      |
+----+----+----+----------+

解题:

这题我尝试了2次,第一次因为没有搞清三角形的定义,所以写得不对,惭愧惭愧,小学是数学知识“两边之和大于第三边”,都已经还给老师了。

第一次尝试:

select x,y,z,case when x+y>z then 'yes' when x+z > y then  'Yes' when y+z >x then 'Yes' else 'no' end as triangle from Triangle

这个SQL错误之处在于,不符合所有的两边之和大于第三边

第二次尝试,对的:

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

你可能感兴趣的:(sql,java,数据库)