PostgreSQL 印刷変数
Shihab Sikder
2023年6月20日
変数を出力する前に、Postgres 関数またはクエリで変数を宣言する必要があります。 次に、raise notice
を使用して、これらの変数の値を出力できます。
raise notice
を使用して PostgreSQL の変数値を出力する
製品情報を含む次の表があるとします。
postgres=# select * from product;
product_id | product_name | entered_by | product_price | product_stock
------------+----------------------------------+------------+---------------+---------------
1 | Mustard - Dijon | 10 | 57.44 | 155
2 | Bacardi Limon | 6 | 51.68 | 395
3 | Chicken - Leg, Fresh | 6 | 57.88 | 130
4 | Mcgillicuddy Vanilla Schnap | 9 | 45.76 | 130
このテーブルには、50 個の製品リストが含まれています。 ここで、製品の平均価格をフォーマットされた文字列で出力したいとしましょう。
したがって、PL/SQL クエリは次のようになります。
do $$
declare
average product.product_price%type;
begin
select avg(product_price)
from product
into average;
raise notice 'Average price is %s', average;
end; $$;
NOTICE: Average price is 40.36s
PostgreSQL で複数の変数値を出力する
各 ID の平均製品価格と総在庫数を確認したいとします。 たとえば、ID 1 が 400 の製品を入力し、平均価格は 50 です
のように印刷したいとします。
これを行うコマンドは次のとおりです。
do $$
declare
average product.product_price%type;
stock product.product_stock%type;
id product.entered_by%type;
begin
select avg(product_price),sum(product_stock),entered_by
from product
into average,stock,id
WHERE entered_by=1
GROUP BY ENTERED_BY;
raise notice 'ID %s entered a total of % products, and the average price is %',id, stock, average;
end; $$;
NOTICE: ID 1s entered a total of 1111 products, and the average price is 41.75
DO
postgres=#
そこで、Postgres クエリから複数の変数を出力する方法を次に示します。 この raise notice
は、関数内または DO
内で使用できます。
必要に応じて、ループを使用して各行を印刷することもできます。 変数の出力機能の詳細については、こちら から公式ドキュメントを参照してください。
著者: Shihab Sikder