select nvl(c.c_id, '0')
into warn_id
from t_config c
right join (select '0' from dual) tt on 1 = 1
where risk_val between c.start_val and c.end_val;warn_id,risk_val都是过程中定义的变量,但是risk_val可能不在config表中start_val与end_val之间,返回空行,为了避免这种情况,我来了个right join (select '0' from dual) tt on 1 = 1,但是还是错误啊,依然返回空行,报错,大侠们看看,怎么改改啊
into warn_id
from t_config c
right join (select '0' from dual) tt on 1 = 1
where risk_val between c.start_val and c.end_val;warn_id,risk_val都是过程中定义的变量,但是risk_val可能不在config表中start_val与end_val之间,返回空行,为了避免这种情况,我来了个right join (select '0' from dual) tt on 1 = 1,但是还是错误啊,依然返回空行,报错,大侠们看看,怎么改改啊
解决方案 »
- oracle 关于not exists的问题
- 请问一下, 引用同一个表的字段的值,修改后赋值给另一个字段,SQL语句怎么写?
- 請問oracle 怎么生成腳本?
- 求SQL语句计算三个表之间的数据
- oracle 复合主键如何被外键参照?急
- 我想用一個sql語句顯示下面的結果。
- 各位大侠帮我看一个SQL语句哪儿错了。谢谢!!
- 关于存储过程中删除表!!
- !急急急急急急急!!!!!求救ORACLE工程师,无法起动数据库,ORA-00600错误!!!!!
- 帮忙写条SQL语句
- 是不是可以通过固定执行计划 强制查询不通过索引
- 使用 Oracle Enterprise Manager 10i Cosole 进行备份管理
select nvl(c.c_id, '0')
into warn_id
from t_config c
right join (select '0' from dual) tt on 1 = 1 and risk_val between c.start_val and c.end_val;--你加入到了where中,right join对于tt失效了
select nvl(c.c_id, '0')
into warn_id
from t_config c
right join (select '0' from dual) tt on risk_val between c.start_val and c.end_val;--不需要用1=1了