2 glzmzd glzmzd 于 2015.06.03 16:01 提问

求问sql语句如何在添加中使用聚合函数

设1表中有A、B两列,我想添加一组数据(c,d)进去(并没有C的值),其中c=A列最大值+1,
如何写sql语句?

Ps.我知道如果只添加C可以这么写:

insert into 1(A)
select max(A)+1
from 1; 

但是我想同时将数据d添加进去

4个回答

devildream
devildream   2015.06.03 16:31
已采纳

其实你已经知道方法了。
insert into 1(A,B) select max(A),d from test;
在这里d要是一个常量值或者是test表的字段;

devildream
devildream 回复glzmzd: 哦,你的要放在括号里才能正确执行啊!我刚写了测试没有括号也可以。
接近 3 年之前 回复
glzmzd
glzmzd 解决了。。把+1写在括号里面就OK了。。。多谢!
接近 3 年之前 回复
glzmzd
glzmzd 解决了。。把+1写在括号里面就OK了。。。多谢!
接近 3 年之前 回复
glzmzd
glzmzd duplicate entry '1' for key 'primary' 这是错误日志,我的A列为主键。但是我为了防止重复才+1了啊。。
接近 3 年之前 回复
glzmzd
glzmzd insert into 1(A,B) select max(A)+1,d from test;多了个+1就会报错啊。。
接近 3 年之前 回复
bdmh
bdmh   Ds   Rxr 2015.06.03 16:07

insert into tableA(c) select sum(A) from xxx

glzmzd
glzmzd 我并没有C的值啊。。我是希望C的值=A列最大的那个数+1
接近 3 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.06.03 16:09
 SELECT A,B,c,d FROM 表1
 ,(select max(a)+1 c from 表1)
 ,(select max(b)+1 d from 表1)
danielinbiti
danielinbiti 回复glzmzd: SELECT A,B,c FROM 表1 ,(select max(a)+1 c from 表1) 多一列最大值(C列)
接近 3 年之前 回复
glzmzd
glzmzd 没太看懂。。
接近 3 年之前 回复
devildream
devildream   2015.06.03 16:44

我刚回复的最大值少了+1。你写了max(A)+1会报错?什么错?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!