编写一个查询,使用其三个边长来标识TRIANGLES表中每个记录的类型

时间:2018-11-17 06:11:06

标签: sql-server

编写一个查询,该查询使用三个边长来标识TRIANGLES表中每个记录的类型。为表中的每个记录输出以下语句之一:

等边线:这是一个边长相等的三角形。 等腰:这是一个三角形,边长相等。 Scalene:这是一个边长不同的三角形。 不是三角形:A,B和C的给定值不会形成三角形。

3 个答案:

答案 0 :(得分:0)

SELECT CASE 
          WHEN ((a.A + a.B) <= a.C) 
              THEN 'Not A Triangle'
            ELSE
            CASE
            WHEN ((a.A = a.B) AND (a.B = a.C))
               THEN 'Equilateral'
               ELSE 
               CASE                
                 WHEN ((a.A = a.B) or (a.B = a.C) or (a.A = a.C))
                     THEN 'Isosceles'
                     ELSE 
                        CASE
                            WHEN ((a.A != a.B) AND (a.B != a.C) AND (a.A != a.C))
                                THEN 'Scalene '
                            END
                 END
          END
       END 
FROM TRIANGLES a;

答案 1 :(得分:0)

简短版本:

select case
when ((t.A+t.B)<=t.C)
    then 'Not A Triangle'
else
    case 
        when (t.A = t.B) and (t.A = t.C) then 'Equilateral'
    else
        case 
            when (t.A = t.B) or (t.A=t.C) or (t.C=t.B) then 'Isosceles'
        else
            'Scalene '
        end
    end
end 
from TRIANGLES as t

答案 2 :(得分:0)

HackeRrank MySQL - 三角测验类型!

select case
when ((t.A+t.B)<=t.c) then 'Not A Triangle'
else
    case
    when (t.A=t.B) and (t.B=t.c) then 'Equilateral'
    else
        case
        when (t.A = t.B) or (t.A = t.C) or (t.B = t.C) then 'Isosceles'
        else
            'Scalene'
        end
    end
end
from triangles as t;