0
現在我有以下功能:如何使用連接返回結果?
CREATE OR REPLACE FUNCTION set_city(_city_id bigint, _country_id integer, _lat float, lon float) RETURNS geo_cities LANGUAGE plpgsql as $$
DECLARE
city_coords Geometry := ST_SetSrid(ST_MakePoint(_lon, _lat), 3395);
result record;
BEGIN
IF EXISTS (SELECT 1 FROM geo_cities gc WHERE gc.id = _city_id)
THEN
UPDATE geo_cities
SET coords = city_coords, country_id = _country_id
WHERE id = _city_id
RETURNING * INTO result;
ELSE
INSERT INTO geo_cities(id, country_id, coords)
VALUES (_city_id, _country_id, city_coords)
RETURNING * INTO result;
END IF;
RETURN result;
END;
$$
我想用我的結果加入。這就是我的意思:
...
RETURNING
id as city_id,
ST_X(coords) as lon,
INNER JOIN geo_countries as gc ON gc.id = id
...
我可以那樣做嗎?
看起來我必須創建第二個函數。這很傷心... – Vitaly
爲什麼你需要創建第二個功能?做什麼的? – joanolo
這對我來說是需要的,因爲我不想直接使用查詢。爲此,我創建了這個問題,因爲我不明白如何使用一個函數來完成此任務。現在我有第二個功能,但我認爲它不是很好......無論如何感謝您的意見 – Vitaly