Problem
A pupil Tim gets homework to identify whether three line segments could possibly form a triangle.
However, this assignment is very heavy because there are hundreds of records to calculate.
Could you help Tim by writing a query to judge whether these three sides can form a triangle, assuming table triangle holds the length of the three sides x, y and z.
Examples
Table: Triangle
| x | y | z |
|----|----|----|
| 13 | 15 | 30 |
| 10 | 20 | 15 |
For the sample data above, your query should return the follow result:
| x | y | z | triangle |
|----|----|----|----------|
| 13 | 15 | 30 | No |
| 10 | 20 | 15 | Yes |
Solution
Method 1 - Simple Select and Case or if Condition
Code
Sql
Using if
SELECT *,
if(x+y>z AND x+z>y AND y+z>x, 'Yes', 'No') AS triangle
FROM triangle
Code
Sql
Using case: SQL CASE Expressions
SELECT *,
CASE
WHEN x+y>z AND x+z>y AND y+z>x THEN 'YES'
ELSE 'No'
END AS triangle
FROM triangle