帶有連接結果集的表函數的返回類型

大衛542

作為參數化 CTE的後續,在 postgres 中創建下表函數的以下返回類型是什麼,該函數返回包含兩個連接表的結果集?

WITH info($var1) AS (
    SELECT * FROM sales JOIN product USING (p_id) WHERE website=$var1
) SELECT * FROM info JOIN other USING (id)

例如,轉換為一個函數,它可能是這樣的:

create or replace function select_from_joined_tables(arg text)
returns setof ??? language sql as $$
    select * from sales join product using (p_id) where website = arg
$$;
克林

你有兩個選擇。您可以創建包含所有結果列的自定義類型那麼類型將是

...
returns setof the_name_of_the_created_type ...
...

或者,您可以在函數聲明中定義表,例如:

...
returns table(id int, website text... etc)
...

不幸的是,在這兩種情況下,當表的結構發生變化時,以這種方式定義的函數都需要一些干預。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

混合數據類型上的雪花連接不返回結果

帶有類的 Swift 擴展:如何使函數返回對象的真實類型?

如何在 Kotlin 中使用帶有 SAM 接口的函數接收器類型

打字稿函數返回類型

返回任何類型 Swift 的函數

帶有 Kotlin 協程的函數是否可以等待完成並返回 Java 類?

MySQL:在帶有聚合函數的選擇中,如何連接不在聚合函數中的兩列?

帶有解構rest參數的Typescript函數重載類型推斷

將函數的 Future 類型結果分配給 Flutter Widget 中的變量

使用帶有箭頭函數的泛型類型時出現 Typescript Playground 錯誤

如何重載具有相同類型和參數但返回類型不同的 call operator() 函數?

警告:從具有不兼容返回類型“float *”的函數返回“float (*)[3]”

限制參數函數的返回類型

具有公共構造函數的私有類型的表驅動測試

如何在帶有構造函數的類組件中使用 t() 函數?

使用帶有 OR 條件的 Sumproduct 進行計數不會返回所需的結果

函數缺少結束返回語句並且返回類型不包括“未定義”.ts(2366) - Angular

帶有“WHERE title like %post%”的 MySQL 查詢返回一個空的結果集

為什麼 `class::knn()` 函數給出與帶有固定 k 的 `kknn::kknn()` 不同的結果?

為什麼要指定函數返回類型?

按返回類型重載函數?

如何從函數的返回中獲取類型?

是否可以將函數的返回類型設置為其回調函數的返回類型?

在 Typescript 中,如何指定可以返回多種類型的函數的返回類型?

為什麼 C 允許返回與函數返回類型不同的類型?

打字稿推導出泛型類型成員函數的返回類型

Python 中是否有 igraph 函數用於返回 shortest_path 結果的索引

函數賦值的類型檢查,具有聯合類型參數的函數

具有遺傳 T 類型的 Kotlin 函數