Oracle 根据“选择最大值”将插入到表中

Oracle 根据“选择最大值”将插入到表中,oracle,Oracle,有谁能告诉我,在下面的查询中插入到表中有什么不同吗 INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC) values ((SELECT MAX(ASSET_ID) FROM STAGING.ASSET )+ 1 ,'High Yield'); 这一个跳过一条记录并插入,例如,我在STAGING.ASSET中有5条记录,插入后,我可以在ASSET\u ID中看到7个递增的值 INSERT INTO STAGING.ASSET (ASSET_

有谁能告诉我,在下面的查询中插入到表中有什么不同吗

INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values ((SELECT MAX(ASSET_ID) FROM STAGING.ASSET )+ 1 ,'High Yield');
这一个跳过一条记录并插入,例如,我在
STAGING.ASSET
中有5条记录,插入后,我可以在ASSET\u ID中看到7个递增的值

INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values (SELECT MAX(ASSET_ID)+1 FROM STAGING.ASSET ,'High Yield');

好的,结果没有差异

案例1:

INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values ((SELECT MAX(ASSET_ID) FROM STAGING.ASSET )+ 1 ,'High Yield');
INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values (SELECT MAX(ASSET_ID)+1 FROM STAGING.ASSET ,'High Yield');
您的内部查询将获得
MAX
值,一旦内部查询完成执行,然后在其中添加+1

案例2:

INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values ((SELECT MAX(ASSET_ID) FROM STAGING.ASSET )+ 1 ,'High Yield');
INSERT INTO STAGING.ASSET (ASSET_ID,ASSET,ASSET_DESC)
values (SELECT MAX(ASSET_ID)+1 FROM STAGING.ASSET ,'High Yield');

您的内部查询将获得
MAX
值并在其中添加+1,在执行内部查询时,您将得到与上面相同的结果

两条语句都无效-它们没有选择足够的值,第二条语句需要在子查询周围加括号。显示您的实际查询可能会有所帮助,因为在我们看不到的代码中很难判断您做错了什么;还有样本数据以及两者的实际和预期结果。谢谢拉维,是的,它们之间没有区别,@avina_hello-so。。。那么你的问题是什么?你暗示他们得到了不同的结果,你现在是说他们没有吗?Alex,首先我认为它可以根据整个表获取max记录,现在很清楚了