我有一个应返回两个整数的函数:学习资产存储和原始资产存储。
我将研究资产存储保存为查询中的变量,然后使用CTE找出原始资产存储是什么。但是,尝试返回两个整数时出现错误。
下面的查询用来收回i_study_asset_store
和asset_store_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;
答案 0 :(得分:0)
语法错误。应该是
RETURN QUERY
WITH cte1 AS (/* ... */),
cte2 AS (/* ... */)
SELECT ...;