Oracle decode() 跟序列问题 select decode(max(Id),null,(select ids.currval from dual),max(Id)) id from users这样提示此处不允许使用序号 要什么办法才能达到想要的效果呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --首先要确保你的序列能够取得当前值。取过ids.nextvalselect decode(max(u.id),null,t.id,max(u.id)) id_colfrom users u,(select ids.currval id from dual) t select decode(max(Id),null,(select ids.currval from dual where rownum =1),max(Id)) id from users因为你以前的查询可能结果有多条。所以数据库不知道你要显示哪一条出来。所以才会报错的。 select decode(max(Id),null,ids.currval,max(Id)) id from users 值是能取到的 ,(select ids.currval id from dual) t 在这边提示 此处不允许使用序号 --这样可以了吧SELECT nvl(id,ids.currval) ID FROM (select max(Id) id from users) -- 正解:当你新打开一个会话的时候,你是不能直接取某个序列 的当前值,除非你取过这个序列的 nextval ! select decode(max(Id),null,ids.currval,max(Id)) id from users oracle 请高手指点多表查询问题 ORDER BY DESC 特别消耗资源,如何解决 oracle 安装目录移动导致的问题 接触查询时分母为0的情况 谁知道linux oracle11的启动脚本,做成服务,如何写呢,请高手帮忙 oracle中如何保存集合对象 一个月31天,报表统计 怎么update替换掉某些词 怎样才能把表删掉? W7安装完oracle10g后,创建数据库,去提示对快捷方式下引用的项目权限不够!!!!安装中,我是修改了文件夹属性下的用户完全控制权限。 数据库自动备份代码如何写
--首先要确保你的序列能够取得当前值。取过ids.nextval
select decode(max(u.id),null,t.id,max(u.id)) id_col
from users u,(select ids.currval id from dual) t
因为你以前的查询可能结果有多条。所以数据库不知道你要显示哪一条出来。所以才会报错的。
select decode(max(Id),null,ids.currval,max(Id)) id from users
,(select ids.currval id from dual) t 在这边提示 此处不允许使用序号
--这样可以了吧
SELECT nvl(id,ids.currval) ID FROM (select max(Id) id from users)
-- 正解:当你新打开一个会话的时候,你是不能直接取某个序列 的当前值,除非你取过这个序列的 nextval !