Problem statement:
Write a query identifying the type of each record in the TRIANGLES
table using its three side lengths. Output one of the following
statements for each record in the table:
Not A Triangle: The given values of A, B, and C don't form a triangle.
Equilateral: It's a triangle with sides of equal length.
Isosceles: It's a triangle with sides of equal length.
Scalene: It's a triangle with sides of differing lengths. Input Format
The TRIANGLES table is described as follows:
Each row in the table denotes the lengths of each of a triangle's
three sides.
Sample Input
------------
A B C
20 20 23
20 20 20
20 21 22
13 14 30
Sample Output
-------------
Isosceles
Equilateral
Scalene
Not A Triangle
Attempt that did not work:
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 or A=C or B=C then "Isosceles"
when A<>B and B<>C then "Scalene"
end as triangles_type
from TRIANGLES;
解决方案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 or A = C or B = C THEN 'Isosceles'
WHEN A <> B and B <> C THEN 'Scalene'
END tuple
FROM TRIANGLES;
By using case statement check if given input is a triangle or not.
If it is a triangle then check if all sides are same if true the triangle type is 'Equilateral'.
If not then check if any two sides are equal if true the triangle type is 'Isosceles'
In the case of not equal, any sides the triangle type is 'Scalene'. We can directly use ELSE also.