表:
Triangles
+-------------+------+ | Column Name | Type | +-------------+------+ | A | int | | B | int | | C | int | +-------------+------+ (A, B, C) 是这张表的主键。 每一行包含三角形三边的长度。
题目要求:
编写一个查询来找到 三角形 的类型。对于每一行输出下面的其中一个:
- Equilateral:
3
边长度相同的三角形。 - Isosceles:
2
边长度相同的三角形。 - Scalene:
3
边长度不同的三角形。 - Not A Triangle:给定的
A
,B
,C
的值不能形成三角形。
以 任何顺序 返回结果表。
结果格式如下所示。
示例 1:
输入: Triangles 表: +----+----+----+ | A | B | C | +----+----+----+ | 20 | 20 | 23 | | 20 | 20 | 20 | | 20 | 21 | 22 | | 13 | 14 | 30 | +----+----+----+ 输出: +----------------+ | triangle_type | +----------------+ | Isosceles | | Equilateral | | Scalene | | Not A Triangle | +----------------+ 解释: - 第一行的值形成了等腰三角形,因为 A = B。 - 第二行的值形成了等边三角形,因为 A = B = C. - 第三行的值形成了斜三角形,因为 A != B != C. - 第四行中的值不能形成三角形,因为边 A 和边 B 的和不大于边 C。
一 我们可以使用 case when 语句来分类。
select case when (a + b <= c or a + c <= b or b + c <= a) then 'Not A Triangle' when a = b and a = c then 'Equilateral' when (a = b and a != c) or (a = c and a != b) or (b = c and b != a) then 'Isosceles' else 'Scalene' end as triangle_type from Triangles;
这里需要注意的是 case when 是按照从上往下的顺序进行执行的。我们需要将 判断是否能成三角形 语句放在第一行即可。
以上就是全部答案,如果对你有帮助请点个赞,谢谢。
来源:力扣(leecode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
转载请注明出处:
我会尽快把力扣上的所有数据库题目发出来。感兴趣的可以点个赞与关注。每天不定时跟新。