gpt4 book ai didi

sql - 当列值不存在时选择最大列值?

转载 作者:行者123 更新时间:2023-12-04 23:46:29 25 4
gpt4 key购买 nike

我有一个包含以下数据的表格。如果我的 sql 中的 where 子句在表中不存在,我正在努力使用 sql 来选择具有最大 fiscal_period 和 fiscal_year 的行。

所以换句话说,如果我尝试选择尚不存在的第 8 财年,我的查询应该检索具有最大期间和年份的行确实存在。任何人都可以帮助我提供可以提供该答案的查询吗?

这是我到目前为止尝试过的。

    SELECT   
nvl(FISCAL_PERIOD,max(FISCAL_PERIOD)),nvl(FISCAL_year,max(FISCAL_year)),amount
FROM MAXTABLE
where fiscal_period = 5
group by FISCAL_PERIOD,FISCAL_year, amount;


CREATE TABLE MAXTABLE
( "FISCAL_PERIOD" NUMBER,
"FISCAL_YEAR" NUMBER,
"AMOUNT" NUMBER
)


Insert into MAXTABLE (FISCAL_PERIOD,FISCAL_YEAR,AMOUNT) values (1,9,50);
Insert into MAXTABLE (FISCAL_PERIOD,FISCAL_YEAR,AMOUNT) values (2,5,50);
Insert into MAXTABLE (FISCAL_PERIOD,FISCAL_YEAR,AMOUNT) values (3,6,50);

最佳答案

在查询中使用 union all 获取最大年份的数据,并为目标年份附加一个 not exists 条件,因此联合的两半都不能不会被退回:

SELECT FISCAL_PERIOD, FISCAL_year, amount  
FROM MAXTABLE
where fiscal_period = 5
union all
SELECT FISCAL_PERIOD, FISCAL_year, amount
FROM MAXTABLE
where fiscal_period = (select max(fiscal_period) from MAXTABLE)
and not exists (select * from MAXTABLE where fiscal_period = 5)

关于sql - 当列值不存在时选择最大列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30690185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com