gpt4 book ai didi

sql - 在 SQL 查询中使用内联函数和 CTE

转载 作者:行者123 更新时间:2023-12-04 14:16:30 28 4
gpt4 key购买 nike

我正在尝试在 SQL 查询中同时使用内联函数和 CTE,但我似乎不知道该怎么做。我可以做其中之一,但不能同时做。

例如(归结为最低限度的无用查询),我可以这样做:

WITH
FUNCTION f_test RETURN NUMBER IS
BEGIN
RETURN 1;
END;
SELECT
f_test()
FROM
dual;

我可以做到:

WITH cte_test AS (
SELECT
1
FROM
dual
)
SELECT
*
FROM
cte_test

如何为 select 语句同时定义函数和 CTE?基本上我想以这样的方式结束:

SELECT f_test(), cte_test.* FROM cte_test

最佳答案

语法在 Oracle SELECT documentation 中给出将您的内联函数和子查询分解子句结合起来的方法是:

WITH
FUNCTION f_test RETURN NUMBER IS
BEGIN
RETURN 1;
END;
cte_test ( id ) AS (
SELECT 1 FROM DUAL
)
SELECT f_test(),
c.*
FROM cte_test c;

哪些输出:

F_TEST() | ID-------: | -:       1 |  1

db<> fiddle here

关于sql - 在 SQL 查询中使用内联函数和 CTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996526/

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