Skip to content

Latest commit

 

History

History
117 lines (88 loc) · 3.11 KB

File metadata and controls

117 lines (88 loc) · 3.11 KB
comments difficulty edit_url tags
true
简单
数据库

English Version

题目描述

表:Triangles

+-------------+------+ 
| Column Name | Type | 
+-------------+------+ 
| A           | int  | 
| B           | int  |
| C           | int  |
+-------------+------+
(A, B, C) 是这张表的主键。
每一行包含三角形三边的长度。

编写一个查询来找到 三角形 的类型。对于每一行输出下面的其中一个:

  • Equilateral3 边长度相同的三角形。
  • Isosceles2 边长度相同的三角形。
  • Scalene3 边长度不同的三角形。
  • Not A Triangle:给定的 A ,BC 的值不能形成三角形。

任何顺序 返回结果表。

结果格式如下所示。

 

示例 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 语句

我们可以使用 CASE WHEN 语句来判断三角形的类型。

首先,我们需要判断三个边是否能够构成一个三角形。如果不能,我们返回 Not A Triangle

然后,我们判断三个边的长度是否相等。如果相等,我们返回 Equilateral

接着,我们判断是否有两个边的长度相等。如果有,我们返回 Isosceles

否则,说明三个边的长度都不相等,我们返回 Scalene

MySQL

# Write your MySQL query statement below
SELECT
    CASE
        WHEN A + B <= C
        OR A + C <= B
        OR B + C <= A THEN 'Not A Triangle'
        WHEN A = B
        AND B = c THEN 'Equilateral'
        WHEN (A = B) + (B = C) + (A = C) = 1 THEN 'Isosceles'
        ELSE 'Scalene'
    END AS triangle_type
FROM Triangles;