插入ASSET_MAIN_CATEGORIES值(从ASSET_MAIN_CATEGORIES中选择最大值(sno), 'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
我想插入SNO的最大值作为列值。却显示“缺少表达错误”
我如何实现这一目标。
任何帮助将不胜感激。
答案 0 :(得分:1)
您需要将select max放在方括号中,因为这是一条SQL语句:
insert into ASSET_MAIN_CATEGORIES values((select max(sno) from ASSET_MAIN_CATEGORIES), 'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
如果遇到错误,建议在insert statement
中添加列名
答案 1 :(得分:1)
至少有这样做的方法:
插入到...值中,并在括号中嵌入选择,以便数据库对其进行评估:
insert into ASSET_MAIN_CATEGORIES values(
(select max(sno) from ASSET_MAIN_CATEGORIES),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
);
INSERT INTO ... SELECT ,因为所有其他数据都是静态的:
insert into ASSET_MAIN_CATEGORIES
select
max(sno),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
from ASSET_MAIN_CATEGORIES
;
请注意,如果您未指定要在ASSET_MAIN_CATEGORIES
数据库中填充的列,则假定您正在按照在表中创建它们的顺序来提供所有这些列的值。
答案 2 :(得分:0)
这将起作用:-
我已经在我的桌子上检查了其工作情况,示例代码以了解:
insert into b(col1,col2) select 7,(select max(col2) from b)
from dual;
您需要什么代码:-
insert into ASSET_MAIN_CATEGORIES(col1,col2,....,col10)
select (select max(col2) from ASSET_MAIN_CATEGORIES), 'PROD','AC
HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1)
from dual;