微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想比较两个数字.我们取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

原文地址:https://www.jb51.cc/mssql/77247.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐