SQL-每日一题【610.判断三角形】

题目

表: Triangle

写一个SQL查询,每三个线段报告它们是否可以形成一个三角形。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

解题思路

前置知识

CASE函数

CASE具有两种格式,简单CASE函数和CASE搜索函数。这两种方式,大部分情况下可以实现相同的功能。

简单CASE函数

语法:

CASE column 

WHEN <condition> THEN value 

WHEN <condition> THEN value

......

ELSE value END

示例:

CASE sex
     WHEN '1' THEN '男'
     WHEN '2' THEN '女'
ELSE '其他' END

CASE搜索函数

语法:

CASE 

WHEN <condition> [,<condition>] THEN value 

WHEN <condition> [,<condition>] THEN value

......

ELSE value END

示例:

CASE WHEN sex = '1' THEN '男'
          WHEN sex = '2' THEN '女'
ELSE '其他' END

简单CASE 函数重在简洁,但是它只适用于这种单字段的单值比较,而CASE 搜索函数的优点在于适用于所有比较(包括多值比较)的情况。

例如:

CASE WHEN sex = '1' AND age>18 THEN '成年男性'
          WHEN sex = '2' AND age>18 THEN '成年女性'
ELSE '其他' END

注意:CASE函数只返回第一个符合条件的值,剩下的CASE部分将会被自动忽略。比如说,下面这段SQL,你永远无法得到“第二类”这个结果

CASE WHEN Type IN ('a','b') THEN '第一类' 
          WHEN Type IN ('a')     THEN '第二类' 
ELSE '其他类' END

知道了case函数后我们来解决这个问题

 1.题目要求我们判断三个线段报告它们是否可以形成一个三角形,可以形成三角形的条件是两边之和大于第三边,此时我们用case函数进行判断,when x+y>z and x+z>y and y+z>x 时,表明这组线段可以形成三角形,我们就返回Yes,否则我们返回No即可。

代码实现

select x,y,z,
(case when x+y>z and x+z>y and y+z>x then 'Yes' else 'No' end) as triangle
from triangle;

测试结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值