Computer Science/데이터베이스
PostgreSQL 문법 정리5 - 내장함수
ssun_bear
2023. 4. 14. 01:25
반응형
1. union / union all
두 집합을 중복을 제거하고 합집합 형태로 조회, union all은 중복제거 x
select
A.*
from
(select
column1 ,
column2
from
A_table
union
select
column3 ,
column4
from
B_table) A;
2. || , concat
문자열 합치기
select
'My name is ' || name;
from
name_table;
--Tom Holland--
select
concat('Hi ', name, ' is my name');
from
name_table;
--Hi Tom Holland is my name--
3. substring
문자열 자르기 substring(문자열, 시작점, 시작점부터 개수)
select
substring('Tom Holland', 1 ,3);
--Tom--
4. to_date
문자열을 date로 변환
select
to_date('2023-03-30', 'yyyy-mm-dd');
5. to_char
숫자나 date를 문자열로 변환
select
to_char(now(), 'yyyy-mm-dd');
--2023-03-31--
'FM999,999,999' 포멧을 사용하여 숫자를 천 단위마다 컴마를 넣어 조회할 수 있다.
*포멧의 수치는 출력될 값의 예상 수치보다 높게 잡아야하며 .을 넣어서 소수점자리도 맞출 수 있다.
select
to_char(1000000, 'FM999,999,999');
--1,000,000--
6. coalesce
null값 치환
select
coalesce(name, '이름없음')
from
name_table
--name의 값이 null일 경우 '이름없음'으로 조회--
7. upper, lower
대소문자 변환
select
upper('tom');
--TOM--
select
lower('HOLLAND');
--holland-
8. 집계함수 및 숫자 관련 함수
count, sum, avg, round, max, min
select
name ,
count(*)
from
name_table
group by
name;
--name 컬럼을 그룹화하여 name별 개수 count--
select
sum(A.cnt)
from
(select
name ,
count(*) as cnt
from
name_table
group by
lcl.jimok)as A;
--총합계--
select
round(avg(A.cnt))
from
(select
name ,
count(*) as cnt
from
name_table
group by
lcl.jimok)as A;
--평균 값을 반올림(2번째 인자로 소수점자리 지정 가능)--
select
max(A.cnt),
min(A.cnt)
from
(select
name ,
count(*) as cnt
from
name_table
group by
lcl.jimok)as A;
--최댓값과 최솟값--
9. distinct
중복 제거
select distinct
name
from
name_table
10. array_agg(배열로 반환), array_to_string(배열을 문자열로 반환)
select
name
from
name_table
--Tom Holland--
--Petter Parker--
--Spider-Man--
위와 같이 조회되는 값을 아래와 같이 조회 가능
select
array_to_string(array_agg(name), ',')
from
name_table
--Tom Holland,Petter Parker,Spider-Man--
11. split_part
구분자를 기준으로 문자열을 분할한 후 지정된 위치에 해당하는 부분을 반환
select
split_part(to_char(now(), 'yyyy-mm-dd'), '-', 1),
split_part(to_char(now(), 'yyyy-mm-dd'), '-', 2),
split_part(to_char(now(), 'yyyy-mm-dd'), '-', 3)
--2023--
--03--
--31--
반응형