본문 바로가기
728x90

Be Smart/SQL55

[ Oracle ] 조건별로 우선 정렬하기 ORDER BY DECODE/CASE 조회 쿼리를 이용 할 때, 단순히 오름차와 내림차순 정렬이 아니라 정렬을 하되 우선적인 값을 제일 상단에 조회하고 그 후 정렬을 하던지 등 원하는 특정 조건을 기준으로 잡아 정렬을 해야하는 경우가 있다. 방법은 그리 복잡하지 않으니 예제를 보면서 이해해보도록 하자. 먼저 아래와 같은 주문테이블이 있다고 가정한다. CREATE TABLE 주문테이블 ( 주문일자 VARCHAR2(200 BYTE), 주문상품 VARCHAR2(200 BYTE), 주문상태 VARCHAR2(200 BYTE) ); INSERT INTO 주문테이블 (주문일자, 주문상품, 주문상태) VALUES ('2021-01-20', '삼겹살' , '배송중' ); INSERT INTO 주문테이블 (주문일자, 주문상품, 주문상태) VALUES ('20.. 2022. 4. 29.
[SQL] WITH 절 WITH절 SQL을 작성하다 보면 반복되는 서브 쿼리를 이곳저곳 복붙 해서 사용해야 하는 경우가 있다. 이곳저곳 흩어져 있기 때문에 가독성도 떨어지고, 만약 서브 쿼리를 수정해야 한다면 위치를 찾아 각각 다 고쳐 줘야 한다. WITH 절은 이러한 서브 쿼리의 단점을 해결하기 위해 서브 쿼리를 마치 함수처럼 이름을 가지도록 사용하는 방법이다. 약간 VIEW와 쓰임새가 비슷해보이지만 차이점은 WITH 절은 VIEW처럼 DBMS에 저장하여 사용하는 것이 아닌 실행할 쿼리문 내에 정의되어 있어, 해당 쿼리가 실행될 때마다 파싱 되고 실행계획을 세운다. WITH절 기본 WITH절의 기본 구조 예제는 아래와 같다. WITH WITH_SUB AS ( ... -- 서브쿼리 작성 ) SELECT * FROM WITH_S.. 2021. 12. 24.
[PostgreSQL] JSON Array 쿼리하기 JSON Array를 쿼리 하는 방법을 설명해드리겠습니다. 기본적인 PostgreSQL에서 제공하는 JSON 함수 및 연산자를 알고 계신다는 가정하에 설명드리겠습니다. 제 환경은 PostgreSQL 10 버전을 사용하고 있으며 기본 설정을 유지하고 있습니다. JSON 관련 함수 및 연산자를 정의한 공식 문서를 한 번 읽어보시는 것을 추천드립니다. 링크: JSON Functions and Operators 테이블 및 데이터 생성 가장 먼저 테이블을 생성하고 기초적인 데이터를 임의로 입력해줍니다. 설명하기 쉽게 여러 회사 리스트 테이블을 만들고 JSONB 형식의 필드는 직원들로 정의하겠습니다. -- 테이블 생성 CREATE TABLE company ( id INTEGER PRIMARY KEY, name CH.. 2021. 12. 21.
[PostgreSql] Json 데이터 가져오기 Json 연산자 -> : key형태로 json객체 반환 ->> : text형태로 json객체 반환 key형태 product 테이블, info 컬럼에 {"name": "milk"}라는 데이터들이 있을 때 SELECT info -> 'name' FROM product; 반환값 "milk" text형태 SELECT info ->> 'name' FROM product; 반환값 milk 2021. 12. 21.
728x90