oracle数据库,提示缺少select关键字

插入数据,提示缺少关键字SELECT,
WITH A AS (select acct_no,
lead(txn_dt) over(partition by acct_no order by acct_no) end_dt
from acctno_bal)
insert into acctnoa(end_dt) select nvl(end_dt,'30001231') end_dt from A;
commit;

img

直接 insert into select不行么

insert into acctnoa(end_dt)  select nvl(end_dt,'30001231') from (select acct_no,
lead(txn_dt) over(partition by acct_no order by acct_no) end_dt
from acctno_bal ) a;

你要飞用with 那也是在insert 后边写

insert into acctnoa(end_dt)
with a as(
select acct_no,
lead(txn_dt) over(partition by acct_no order by acct_no) end_dt
from acctno_bal
) select nvl(end_dt,'30001231') end_dt from A;

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/745229
  • 除此之外, 这篇博客: oracle数据库:select基本语法【简单查询】中的 3.3,排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 例子:查询所有内容并且按照年龄字段从高到低排序:select * from student order by age desc;,其中desc表示降序排序,升序排序的关键字为ascorder by 后面接排序的标准,这里以年龄为排序的标准。结果如下图所示:
    在这里插入图片描述
    可以看到年龄是降序排序的,升序排序只需要把desc关键字换成asc即可。
    在这里插入图片描述
    可以发现相同年龄的,数学成绩并不一样,可以在这个基础上,根据数学成绩再次排序

    select * from student order by age asc,math desc;
    

    这句sql的意思是查询表中所有内容,其中以age为排序标准进行升序排序,如果age相同的时候,以math成绩进行降序排序,结果如下图所示:
    在这里插入图片描述
    这里要注意,只有第一个字段相同的时候,才会执行第二个字段。如果排序关键字没有写,则默认是asc升序排序。