帮忙看看我这句子怎么改改?

newlysl 2009-06-02 02:55:48
insert into tbl("Name","GongZi","Id_tbl",timestamp) values('ww','120',max("Id_tbl")+1,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))

ORA-00934: 此处不允许使用分组函数
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2009-06-02
  • 打赏
  • 举报
回复
value里面用max()聚合函数啊
newlysl 2009-06-02
  • 打赏
  • 举报
回复
看来有时候dual很灵活,有时候却要靠临时变量才真正变灵活了
newlysl 2009-06-02
  • 打赏
  • 举报
回复
5楼的疑问我自己解决了:
对于报错误显示如下的那句,只要把dual改成我真正的表tbl,就是了
ORA-00904: "Id_tbl": 无效的标识符

对于报错误显示如下的那句,只要把max("Id_tbl")+1两边的单引号去掉就是了
ORA-01722: 无效数字

嘎嘎!
newlysl 2009-06-02
  • 打赏
  • 举报
回复
回一楼,刚才恕我有点凭感觉说话了。。。您是对的

不过我这两句跟你 差不多,怎么就不行呢?。。。

insert into tbl("Name","GongZi","Id_tbl",timestamp) select 'ww','120',max("Id_tbl")+1 no,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

ORA-00904: "Id_tbl": 无效的标识符

insert into tbl("Name","GongZi","Id_tbl",timestamp) select 'ww','120','max("Id_tbl")+1',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

ORA-01722: 无效数字
welyngj 2009-06-02
  • 打赏
  • 举报
回复
insert into tbl("Name","GongZi","Id_tbl",timestamp)
select 'ww','120',(select max("Id_tbl")+1 from tab) tb1,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
robin_ares 2009-06-02
  • 打赏
  • 举报
回复
max("Id_tbl")+1
=>
select nvl(max("Id_tbl"),0)+1 from tbl
newlysl 2009-06-02
  • 打赏
  • 举报
回复
这种方法,我试过了,不行啊,所以才问我那写法是不是有可以改的地方

[Quote=引用 1 楼 bw555 的回复:]
很清楚了,这不能用max
你是哪取最大啊?取最大可以采用下面的语法

SQL codeinsert into tbl("Name","GongZi","Id_tbl",timestamp)
select 'ww','120',max("Id_tbl")+1,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
from tab
[/Quote]
bw555 2009-06-02
  • 打赏
  • 举报
回复
很清楚了,这不能用max
你是哪取最大啊?取最大可以采用下面的语法
insert into tbl("Name","GongZi","Id_tbl",timestamp) 
select 'ww','120',max("Id_tbl")+1,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
from tab

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧