-
[PostgreSQL] 데이터 타입 변환 - CAST, :: 연산자SQL 2021. 8. 26. 18:57
데이터 타입 변환 - CAST, :: 연산자
PostgreSQL에서 데이터 타입을 변환하는 방법은 두 가지가 있습니다.
첫 번째는 CAST 를 이용하는 방법이고, 두 번째는 :: 연산자를 활용하는 방법입니다.
먼저 음료 메뉴(menu)와 가격(price) 정보를 담고 있는 menu 테이블을 만들어 주겠습니다.
이때 메뉴 이름과 가격의 데이터 타입은 text로 설정했습니다.
WITH menu AS ( SELECT 'Americano' AS menu, '4100' AS price UNION SELECT 'Cappuccino' AS menu, '4600' AS price UNION SELECT 'Caffe Mocha' AS menu, '5100' AS price) SELECT * FROM menu
앞서 만든 테이블의 가격에 500원씩 더하여 조회해보겠습니다.
WITH menu AS ( SELECT 'Americano' AS menu, '4100' AS price UNION SELECT 'Cappuccino' AS menu, '4600' AS price UNION SELECT 'Caffe Mocha' AS menu, '5100' AS price) SELECT *, price + 500 AS increased_price FROM menu
가격을 text로 입력했기 때문에 text + integer 로 인한 오류가 발생하는 것을 볼 수 있습니다.
이처럼 데이터 타입을 바꿔야 하는 상황에서 데이터 타입을 변환하는 방법을 알아보겠습니다.
- CAST
아래 코드와 같이 CAST ( 변환할 데이터 값 AS 변환하고자 하는 데이터 타입 ) 형태로 작성해 주면 됩니다.
CAST ( expression AS target_type );
앞서 데이터 타입의 충돌로 오류가 났던 것을 CAST를 이용해 price 칼럼을 INTEGER로 바꾸어 다시 조회해 보겠습니다.
WITH menu AS ( SELECT 'Americano' AS menu, '4100' AS price UNION SELECT 'Cappuccino' AS menu, '4600' AS price UNION SELECT 'Caffe Mocha' AS menu, '5100' AS price) SELECT *, CAST(price AS INTEGER) + 500 AS increased_price FROM menu
형변환으로 오류 없이 500원 더해진 가격으로 잘 조회된 것을 확인할 수 있습니다.- ::
:: 연산자를 활용하는 방법은 변환할 데이터 값 뒤에 ::과 함께 변환될 데이터 타입을 넣어주는 것입니다.
expression::type
앞서 CAST를 이용해 price 칼럼을 INTEGER로 바꾼 것을 이번에는 ::를 이용하여 데이터 타입을 변환해보겠습니다.
WITH menu AS ( SELECT 'Americano' AS menu, '4100' AS price UNION SELECT 'Cappuccino' AS menu, '4600' AS price UNION SELECT 'Caffe Mocha' AS menu, '5100' AS price) SELECT *, price::INTEGER + 500 AS increased_price FROM menu
마찬가지로 오류 없이 가격에 500원이 잘 더해진 것을 확인할 수 있습니다.
CAST와 :: 를 이용하면 예시로 든 string에서 integer로의 변환 외에도,
다양한 데이터 타입으로 형변환(string -> date, string -> boolean, string -> timestamp 등)을 할 수 있습니다.
https://www.postgresqltutorial.com/postgresql-cast
PostgreSQL CAST Convert From One Data Type Into Another
Home » PostgreSQL Tutorial » Using PostgreSQL CAST To Convert a Value of One Type to Another Summary: in this tutorial, we will show you how to use PostgreSQL CAST operator to convert a value of one type to another. Introduction to PostgreSQL CAST operat
www.postgresqltutorial.com
'SQL' 카테고리의 다른 글
[PostgreSQL] 문자열 자르기 - SUBSTRING (0) 2021.08.27 [PostgreSQL] NULL 값 대체하기 - COALESCE (0) 2021.08.24 [PostgreSQL] GROUPING SETS/ CUBE/ ROLLUP (0) 2021.08.18 [PostgreSQL] UNION/ INTERSECT/ EXCEPT (0) 2021.08.11 [SQL] SQL Query 쿼리문 (3) - CASE, SubQuery(feat. IN, EXISTS) (0) 2021.07.26