У меня есть функция, которая возвращает два параметра как анонимный составной тип через output parameters.Разделительная запись, возвращаемая функцией в postgres
я могу получить доступ к отдельным столбцам с помощью запроса, как это:
# select * from guess_user('Joe','Bloggs');
confidence | matchid
------------+---------
0.142857 | 1121
Теперь я хочу, чтобы объединить данные из этой функции с некоторыми данными:
# select firstname,lastname from users limit 5;
firstname | lastname
-----------+----------
Adam | Smith
Amy | Peters
Annette | Bloggs
Annie | Mills
Amanda | Hibbins
Ищу для запроса который выведет следующее:
firstname | lastname | confidence | matchid
-----------+----------+------------+---------
Adam | Smith | |
Amy | Peters | |
Annette | Bloggs | |
Annie | Mills | |
Amanda | Hibbins | |
С уверенностью и колонками соответствия с помощью результатов вызова guess_user с именами из этой строки.
Мое текущее ближайшее усилие:
# select firstname, lastname, guess_user(firstname, lastname) from users limit 5;
Который возвращает:
firstname | lastname | guess_user
-----------+-----------+---------------
Angela | Abbott | (0.285714,3)
Amy | Allan | (0.285714,4)
Annette | Allison | (0.285714,5)
Annie | Ashworth | (0.285714,6)
Amanda | Baird | (0.285714,7)
Есть ли способ разделить выход guess_user в отдельные столбцы?
В случае, если это полезно для тех, кто хочет экспериментировать, вот функция, которая будет возвращать один и тот же тип записи, как один я использую: создайте или замените функцию guess_user (firstname varchar, lastname varchar, OUT trust real, OUT matchid integer) как $$ BEGIN matchid: = 1; доверие: = 0,5; ВЕРНУТЬ; КОНЕЦ; $$ LANGUAGE plpgsql; – simoncoggins
Можно ли реализовать это как представление? http://developer.postgresql.org/pgdocs/postgres/sql-createview.html –