# Type of Triangle in SQL | HackerRank Solution

Hello coders, today we are going to solve Type of Triangle HackerRank Solution in SQL.

## Problem

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:

• Equilateral: It’s a triangle with 3 sides of equal length.
• Isosceles: It’s a triangle with 2 sides of equal length.
• Scalene: It’s a triangle with 3 sides of differing lengths.
• Not A Triangle: The given values of AB, and C don’t form a triangle.

## 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

Sample Output

``````Isosceles
Equilateral
Scalene
Not A Triangle``````

## Explanation

Values in the tuple (20, 20, 30) form an Isosceles triangle, because A == B.
Values in the tuple (20, 20, 20) form an Equilateral triangle, because A == B == C. Values in the tuple (20, 21, 22) form a Scalene triangle, because A =! B =! C.
Values in the tuple (13, 14, 30) cannot form a triangle because the combined value of sides A and B is not larger than that of side C.

## Solution – Type of Triangle in SQL

### MySQL

```select if(A+B<=C or B+C<=A or A+C<=B,"Not A Triangle",
if(A=B and B=C,"Equilateral",
if(A=B or B=C or A=C,"Isosceles","Scalene")))
from TRIANGLES as T;
```

Disclaimer: The above Problem (Type of Triangle) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.

### 11 thoughts on “Type of Triangle in SQL | HackerRank Solution”

1. 2. I entered a solution for mssql into HackerRank for the triangle table
SELECT
case when (A+B<=c or A+C<=B or C+B<=A) then 'Not a Triangle' else
case when (A=B and B=C) then 'Equilateral' else
case when (A=B or B=C or A=C) then 'Isosceles'
else 'Scalene' end end end from triangles;
It said it was wrong. I created the triangles table on my mssql server and entered the example data. It executed and returned the example results. But it keeps saying it is wrong in HackerRank. I do not know why.

3. Ok, I found out why
SELECT
case when (A+B<=c or A+C<=B or C+B<=A) then 'Not a Triangle' else
case when (A=B and B=C) then 'Equilateral' else
case when (A=B or B=C or A=C) then 'Isosceles'
else 'Scalene' end end end from triangles;
does not work it should have been 'Not A Triangle'. capital A

4. –THIS IN MS SQL gave a correct answer
select
case
when ((A+ B <= C) OR (B+C <= A) OR (A+C <= B)) THEN 'Not A Triangle'
when ((A=B) AND (B=C)) then 'Equilateral'
when ((A=B ) OR (B=C ) OR (C=A)) then 'Isosceles'
when (AB AND AC AND BC) AND NOT ((A+ B <= C) OR (B+C <= A) OR (A+C <= B)) then 'Scalene'
end
from Triangles

5. SELECT CASE
WHEN ((A+B<=C) OR (A+C<=B) OR (B+C<=A)) THEN 'Not A Triangle'
WHEN ((A=B) AND (AC)) OR ((A=C) AND (AB)) OR ((B=C) AND (AB)) THEN ‘Isosceles’
WHEN ((A=B) AND (B=C)) THEN ‘Equilateral’
WHEN ((AB) AND (AC) AND (BC)) AND NOT ((A+B<=C) OR (A+C<=B) OR (B+C<=A)) THEN 'Scalene'
END
FROM TRIANGLES;

The correct answer after applying all conditions 😀

6. this worked for me

select
–a,b,c ,
case
when ( a = b ) and ( b = c) then ‘Equilateral’
when ((a + b)<= c) or ((b + c)<= a or ((c + a)<= b)) then 'Not A Triangle'
when (a = b) or (b = c) or (c = a) then 'Isosceles'
when (a b) or (b c) or (c a) then ‘Scalene’
end as result
from TRIANGLES

1. select
–a,b,c ,
case
when ( a = b ) and ( b = c) then ‘Equilateral’
when ((a + b)<= c) or ((b + c)<= a) or ((c + a)<= b) then 'Not A Triangle'
when (a = b) or (b = c) or (c = a) then 'Isosceles'
when (a b) or (b c) or (c a) then ‘Scalene’
end as result
from TRIANGLES

7. mohamed nasr

select
case
when ((A+ B <= C) OR (B+C <= A) OR (A+C <= B)) THEN 'Not A Triangle'
when ((A=B) AND (B=C)) then 'Equilateral'
when ((A=B ) OR (B=C ) OR (C=A)) then 'Isosceles'
when ((A != B) and (B != C) and (A != c)) then 'Scalene'
end
from Triangles;

8. HI,
IF I WRITE ‘NOT A TRIANGLE’ QUERY IN THE LAST LINE THEN IT’S ERROR SHOWING.
COULD SOMEBODY EXPLAIM ME WHY?

9. Pratiksha Waghmode

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 B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene'
END
FROM TRIANGLES;
(corrected one)

10. instead of ‘Not a Triangle’ write ‘Not A Triangle’