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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的MsSQL相关文章