PostgreSQL 인쇄 변수

Shihab Sikder 2023년6월20일
  1. raise notice를 사용하여 PostgreSQL에서 변수 값 인쇄
  2. PostgreSQL에서 여러 변수 값 인쇄
PostgreSQL 인쇄 변수

변수를 인쇄하기 전에 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 쿼리에서 여러 변수를 인쇄하는 방법은 다음과 같습니다. 함수 또는 DO 내부에서 알림 제기를 사용할 수 있습니다.

원하는 경우 루프를 사용하고 각 행을 인쇄할 수도 있습니다. 변수의 인쇄 기능에 대한 자세한 내용은 여기에서 공식 문서를 참조하세요.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website