加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – Oracle:如何比较查询中的两个NUMBERS值?’TRUE’或’FA

发布时间:2020-12-12 06:59:58 所属栏目:MsSql教程 来源:网络整理
导读:我想比较两个数字.我们取1和2. 我试着写下面的查询,但它根本没有按预期工作(Toad说:ORA-00923:找不到FROM关键字): SELECT 1 2 from dual DECODE类似于Switch案例,那么我怎样才能得到表达式评估的结果(即数字比较)将其放入选择列表中? 我找到了一个使用函
我想比较两个数字.我们取1和2.

我试着写下面的查询,但它根本没有按预期工作(Toad说:ORA-00923:找不到FROM关键字):

SELECT 1 > 2 from dual

DECODE类似于Switch案例,那么我怎样才能得到表达式评估的结果(即数字比较)将其放入选择列表中?

我找到了一个使用函数而不是SELECT LIST中的表达式的解决方案:即

select DECODE(SIGN(actual - target),-1,'NO Bonus for you','Just made it',1,'Congrats,you are a winner')
from some_table

有更优雅的方式吗?

另外我如何比较两个日期?

解决方法

如果你想测试一个>,SIGN()函数确实可能是你感兴趣的最佳分类方法. b,a = b和a< b,它将接受date-date或numeric-numeric作为参数. 我会优先使用Case语句,而不是解码.
Select
  case sign(actual-target)
    when -1 then ...
    when  0 then ...
    when  1 then ...
  end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读