데이터베이스/Postgresql

[Postgresql] View테이블 생성시, Function(함수)를 사용하여 컬럼을 추가해보자.

모찌바라기 2022. 3. 30. 12:55
728x90
반응형

 

 

 

 

오늘은 뷰테이블 생성시 필요컬럼을 함수를 통해 추가하는 방법에 대해 정리하려고 한다.

이번에 프로젝트를 하면서 PNU코드에서 산/일반 구분을 추출하였는데, 일반은 1, 산은 2라는 코드만 있을 뿐

실제 지도의 라벨에 뿌려 줄 텍스트를 가지는 컬럼이 없었다.

 

그래서 저 1과 2라는 값을 통해 산/일반 텍스트를 리턴해주는 함수를 이용하여 컬럼을 추가해주었는데

블로그에 정리가 안되있는 것 같아 정리해본다.

 

 

get_user_name 함수 생성

CREATE OR REPLACE FUNCTION public.get_user_name(id character varying)
 RETURNS text
 LANGUAGE plpgsql
AS $function$
	DECLARE 
	BEGIN
		return (select user_name from jointable jt where jt.USER_ID = id); 
	END;
$function$
;

 

get_user_name 함수에서는 id를 인자로 받아서, jointable에 있는 id와 일치하는 user_name을 리턴해주는 간단한

함수이다.

 

 

뷰테이블 생성

CREATE OR REPLACE VIEW public.view_user_info
AS SELECT "user".requst_id,
    "user".occrrnc_de,
    "user".rqester_id,
    get_user_name("user".rqester_id)::character varying AS user_name
FROM comtnweblog "user";

 

 

comtnweblog에 있는 rqester_id를 get_user_name함수의 인자로 보내서 리턴되는 값을 Alias를 통해

user_name이라는 컬럼명으로 지정한다. 이제 이 View테이블을 조회하면

 

 

 

 

이렇게 user_name이 제대로 들어간 것을 확인 할 수 있다.

 

 

728x90
반응형