Postgresql postgres中的返回变量和CTE结果
我有一个函数,它应该返回两个整数:研究资产存储和原始资产存储 我将研究资产存储保存为查询中的变量,然后使用CTE找出原始资产存储是什么。但是,我在尝试返回两个整数时出错 下面的查询要返回Postgresql postgres中的返回变量和CTE结果,postgresql,Postgresql,我有一个函数,它应该返回两个整数:研究资产存储和原始资产存储 我将研究资产存储保存为查询中的变量,然后使用CTE找出原始资产存储是什么。但是,我在尝试返回两个整数时出错 下面的查询要返回i\u研究\u资产\u存储和资产\u存储id,正确的语法是什么 BEGIN i_study_asset_store = (SELECT stud.asset_store_id FROM study.studies as stud WHERE studyid = _study_id::INT); WITH s
i\u研究\u资产\u存储
和资产\u存储
id,正确的语法是什么
BEGIN
i_study_asset_store = (SELECT stud.asset_store_id FROM study.studies as stud WHERE studyid = _study_id::INT);
WITH study_store AS(
SELECT origin_asset_id
FROM asset.assets
WHERE asset_store_id = 23 --study_asset_store
LIMIT 1
),
origin_asset_store AS(
SELECT asset_store_id
FROM asset.assets
WHERE asset_id IN (SELECT origin_asset_id FROM study_store)
)
RETURN QUERY
SELECT
i_study_asset_store AS study_asset_store
,(SELECT asset_store_id FROM origin_asset_store) AS origin_asset_store;
END;
你的语法错了。应该是
RETURN QUERY
WITH cte1 AS (/* ... */),
cte2 AS (/* ... */)
SELECT ...;