Saya punya kode ini

select A,B,C,
case
when A = B = C then'Equilateral' 
when A + B < C then 'Not A Triangle'
when (A = B and B != C) or (A = C and B != A) or ( B = C and A != B ) then "Isoceles"
else "Scalene"
end,  
from Triangles;

Saya hanya ingin menampilkan string equilateral, not a triangle. Tanpa menampilkan isi kolom. Bagaimana aku melakukan itu?

0
Mohamed Koubàa 29 Desember 2017, 19:14

1 menjawab

Jawaban Terbaik

Pilih saja yang Anda inginkan. Ini akan terlihat seperti:

select (case when A = B and B = C then 'Equilateral' 
             when A + B < C then 'Not A Triangle'
             when (A = B and B <> C) or (A = C and B <> A) or ( B = C and A <> B ) 
             then 'Isoceles'
             else 'Scalene'
        end)  
from Triangles;

Perhatikan bahwa saya mengganti operator SQL standar dalam ekspresi Anda. Karena prioritas case dan memperbaiki logika, ini bisa menjadi:

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 A = C or B = C 
             then 'Isoceles'
             else 'Scalene'
        end)  
from Triangles;

Ini mengasumsikan bahwa A, B, dan C semuanya non-negatif.

3
Gordon Linoff 31 Desember 2017, 22:05