Типы треугольника в Oracle Sql - PullRequest
0 голосов
/ 05 марта 2019

Напишите запрос, определяющий тип каждой записи в таблице TRIANGLES, используя ее три длины стороны.Выведите одно из следующих утверждений для каждой записи в таблице:

Not A Triangle: данные значения A, B и C не образуют треугольник.Равносторонний: это треугольник со сторонами равной длины.Равнобедренный: это треугольник со сторонами равной длины.Scalene: это треугольник со сторонами разной длины.Формат ввода Таблица TRIANGLES описывается следующим образом:

Каждая строка в таблице обозначает длину каждой из трех сторон треугольника.

Пример ввода

A  B  C  
------------
20 20 23 
20 20 20  
20 21 22  
13 14 30

ПримерВывод

Isosceles
Equilateral
Scalene
Not A Triangle

Мой код не работает:

Begin
If(a+b>c) or (a+c>b) or (b+c>a) then
if (a=b!=c) then
dbms_output.put_line ('Isosceles');
elseif (a=b=c)
dbms_output.put_line ('Equilateral');
else (a!=b=!c)
dbms_output.put_line ('Scalene');
endif;

else 
dbms_output.put_line ('Not A Triangle');
endif;
end;

1 Ответ

0 голосов
/ 05 марта 2019

ИМО, вы должны использовать это

SELECT a, b, c,
    CASE  
        WHEN NOT ((a+b>c) AND (a+c>b) AND (b+c>a)) THEN 'Not A Triangle'
        WHEN a = b AND b = c THEN 'Equilateral'
        WHEN a = b OR b = c OR c = a THEN 'Isosceles'
        ELSE 'Scalene'
    END AS result
FROM table_name;

Проверено в rextester

    A   B   C   RESULT
1   20  20  23  Isosceles
2   20  20  20  Equilateral
3   20  21  22  Scalene
4   13  14  30  Not A Triangle
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...