gpt4 book ai didi

Oracle 查询 - 获取条件最大值

转载 作者:行者123 更新时间:2023-12-02 06:43:05 30 4
gpt4 key购买 nike

在 Oracle 中,是否有一种简单的方法可以在单个查询中执行此操作,或者这是正确的方法吗?

SELECT MAX(ID) INTO n_FOO_ID FROM FOO WHERE BAR = n_InputVar and ConditionalFlag IS NULL;

IF n_FOO_ID IS NULL OR n_FOO_ID = 0 THEN
SELECT MAX(ID) INTO n_FOO_ID FROM FOO WHERE BAR = n_InputVar;
END IF;

我想要做的是获取条件与输入变量匹配的最大 ID,但优先考虑没有条件标志的行。

我的大部分数据库经验都是在 SQL Server 中,我会在其中执行以下操作:

SELECT TOP 1 ID INTO @FooID FROM FOO WHERE Bar = @InputVar ORDER BY ConditionalFlag, ID DESC

但这似乎在 Oracle 上工作不一样,或者更有可能......我做得不正确。谁能提供一些建议吗?

谢谢!

最佳答案

我相信 Oracle 相当于:

SELECT TOP 1 ID 
INTO @FooID
FROM FOO
WHERE Bar = @InputVar ORDER BY ConditionalFlag, ID DESC

SELECT ID FROM
( SELECT ID
INTO FooID
FROM FOO
WHERE Bar = InputVar ORDER BY ConditionalFlag, ID DESC
) WHERE ROWNUM = 1;

关于Oracle 查询 - 获取条件最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207337/

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