从表的下一行中提取日期减去一天,然后将其粘贴到下一行中

问题描述 投票:0回答:1

我有带有列的ProductPrices表:Product(VARCHAR2),ProductPrice(NUMBER)和AllowFrom(DATE)。我需要在表中再插入一列,例如AllowTo(DATE)=下一个AllowFrom(DATE)值减去1天。如果不是该产品价格的下一个日期,则应打印'01 .01.1900'。

我正在尝试使用带有减号1的LEAD函数,并得到错误:ORA-00947:值不足

INSERT INTO ProductPrices
SELECT AllowFrom,
LEAD(AllowFrom, 1, '01.01.1900') OVER (ORDER BY AllowFrom) - 1 AS AllowTo
FROM ProductPrices;

如何解决?

谢谢!

sql oracle
1个回答
0
投票

使用格式正确的日期常量并列出所需的列:

INSERT INTO ProductPrices (col1, col2)
    SELECT AllowFrom,
           LEAD(AllowFrom, 1, date '1900-01-01') OVER (ORDER BY AllowFrom) - 1 AS AllowTo
    FROM ProductPrices;

我怀疑您还有其他专栏,但您的问题没有提供这方面的任何信息。

© www.soinside.com 2019 - 2024. All rights reserved.