Выполнение функции в запросе
В этом шаге вы узнаете, как выполнить функцию в запросе. Это демонстрирует, как хранимые функции (stored functions) могут использоваться для манипулирования и извлечения данных.
Сначала давайте создадим простую таблицу под названием numbers
с двумя целочисленными столбцами, num1
и num2
:
CREATE TABLE numbers (
num1 INTEGER,
num2 INTEGER
);
После выполнения SQL-запроса вы должны увидеть следующий вывод:
CREATE TABLE
Теперь давайте вставим некоторые примеры данных в таблицу numbers
:
INSERT INTO numbers (num1, num2) VALUES (10, 5);
INSERT INTO numbers (num1, num2) VALUES (20, 3);
INSERT INTO numbers (num1, num2) VALUES (30, 0);
После выполнения SQL-запросов вы должны увидеть следующий вывод для каждого оператора INSERT
:
INSERT 0 1
Теперь давайте выполним функцию add_numbers_default
в запросе, чтобы вычислить сумму num1
и num2
для каждой строки в таблице numbers
:
SELECT num1, num2, add_numbers_default(num1, num2) AS sum FROM numbers;
Вывод должен быть:
num1 | num2 | sum
------+------+-----
10 | 5 | 15
20 | 3 | 23
30 | 0 | 30
(3 rows)
Как видите, функция add_numbers_default
была выполнена для каждой строки в таблице numbers
, и результат был отображен в столбце sum
.
Давайте попробуем другой запрос, в котором мы предоставляем только один параметр функции add_numbers_default
. Мы будем использовать num1
в качестве первого параметра, а num2
оставим по умолчанию равным 0:
SELECT num1, add_numbers_default(num1) AS sum FROM numbers;
Вывод должен быть:
num1 | sum
------+-----
10 | 10
20 | 20
30 | 30
(3 rows)
Наконец, давайте попробуем запрос, в котором мы не предоставляем никаких параметров функции add_numbers_default
:
SELECT add_numbers_default() AS sum FROM numbers;
Вывод должен быть:
sum
-----
0
0
0
(3 rows)