본문 바로가기
728x90

sql5

[Oracle] 고급 쿼리, 계층형 쿼리 (START WITH, CONNECT BY PRIOR, ORDER SIBLINGS BY) [개념 정리] 계층형 쿼리 : 부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리 START WITH : 트리 구조의 최상위 행을 지정합니다. CONNECT BY : 부모, 자식의 관계를 지정합니다. PRIOR : CONNECT BY 절에 사용되며 PRIOR에 지정된 컬럼이 맞은편 컬럼을 찾아갑니다. CONNECT BY PRIOR 자식 칼럼 = 부모 칼럼 : 부모 -> 자식 순방향 전개 CONNECT BY PRIOR 부모 칼럼 = 자식 칼럼 : 자식 -> 부모 역방향 전개 ORDER SIBLINGS : 계층형 쿼리에서 정렬을 수행합니다. [부모 -> 자식 순방향 전개 계층형 쿼리 예제] select parent_c as p, child_c as c, level from t1 start with .. 2022. 8. 10.
[ 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.
[Oracle] With절 사용법 및 예시 (임시 테이블) WITH절 이란 WITH절은 오라클9 이후 사용이 가능한 이름이 부여된 서브쿼리라고 생각하시면 됩니다. 임시테이블을 만든다는 관점에서 본다면 VIEW와 쓰임새가 비슷하지만, VIEW는 한번 만들어 놓으면 DROP 할 때까지 없어지지 않지만 WITH절 같은 경우 한번 실행할 쿼리문내에 정의되어 있을 경우, 크 쿼리문안에서만 실행된다는 차이점이 있습니다. WITH절을 사용하는 이유 WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성.. 2021. 11. 26.
[오라클] SELECT 개수 제한 오라클에서 SELECT 할 시 출력하는 개수 제한을 두는 방법 MYSQL일 경우에 LIMIT을 써서 SELECT 해올 때 그 개수를 정해서 출력할 수 있습니다. SELECT * FROM TABLE_NAME LIMIT 5; 오라클에서는 LIMIT 이 존재하지 않고 그 대신 ROWNUM이 있다. SELECT * FROM (SELECT * FROM TABLE_NAME) WHERE ROWNUM 2021. 11. 8.
728x90