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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...