We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.

SELECT "Isosceles" from TRIANGLES where ( ((A = B) or (A = C) or (C = B) ) and not ( A = B and A = C ) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) );

SELECT "Equilateral" from TRIANGLES where ( A = B and A = C );

SELECT "Scalene" from TRIANGLES where ( ((A <> B) and (A <> C) and ( B <> C )) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) );

SELECT "Not A Triangle" from TRIANGLES where (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ));

Why does it says wrong answer ??

or this

CASE
WHEN (((A = B) or (A = C) or (C = B) ) and not ( A = B and A = C ) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ))) THEN SELECT "Isosceles";
WHEN ( A = B and A = C ) THEN SELECT "Isosceles";
WHEN (((A <> B) and (A <> C) and ( B <> C )) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ))) THEN SELECT "Scalene";
WHEN (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) THEN SELECT "Not A Triangle";
END CASE

I think you need to read about UNION for the first, the second the CASE should live inside the SELECT not the other way around. I've never seen it the other way around

## Type of Triangle

You are viewing a single comment's thread. Return to all comments →

select

case when a+b<=c or b+c<=a or a+c<=b then 'Not A Triangle' when a=b and b=c and c=a then 'Equilateral' when a=b or b=c or a=c then 'Isosceles'

else 'Scalene' end from TRIANGLES ;

first check for not a triangle condition, it worked for me...

Thank you so much, but for Equilateral, you only need to write 2 conditions, like a=b and a=c would be enough.

that was my problem, I needed to check for "Not A Triangle" condition first

SELECT "Isosceles" from TRIANGLES where ( ((A = B) or (A = C) or (C = B) ) and not ( A = B and A = C ) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) );

SELECT "Equilateral" from TRIANGLES where ( A = B and A = C );

SELECT "Scalene" from TRIANGLES where ( ((A <> B) and (A <> C) and ( B <> C )) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) );

SELECT "Not A Triangle" from TRIANGLES where (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ));

Why does it says wrong answer ??

or this

CASE WHEN (((A = B) or (A = C) or (C = B) ) and not ( A = B and A = C ) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ))) THEN SELECT "Isosceles"; WHEN ( A = B and A = C ) THEN SELECT "Isosceles"; WHEN (((A <> B) and (A <> C) and ( B <> C )) and not (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B ))) THEN SELECT "Scalene"; WHEN (( (A + B) < C ) or ( (C + B) < A ) or ( (C + A) < B )) THEN SELECT "Not A Triangle"; END CASE

I think you need to read about UNION for the first, the second the CASE should live inside the SELECT not the other way around. I've never seen it the other way around

case when a+b-c=c then 'equilateral'---what is wrong in this logic.. plz help

5+5-5 = 5 --> Ok 5+7-6=6 ----> Fail