IF~ELSE 조건문으로 사용되는 DECODE 를 ORDER BY 절에 넣으면 특정 컬럼의 우선순위에 따라 정렬할 수 있다.
예시) 내가 작성한 글(CUSTOMER_NO 고객번호 기준)이라면 상단의 정렬, 그 외 최신순(INSERT_DATE) 정렬
// MyBatis
SELECT *
FROM [게시판 테이블]
ORDER BY DECODE(CUSTOMER_NO, #{custNo}, 1), INSERT_DATE DESC; // #{custNo}: A1
# 게시판테이블
CUSTOMER_NO | INSERT_DATE | CONTENTS
------------------------------------------------
A1 (나) | 2023-03-20 | 안녕하세요 반갑습니다.
A1 (나) | 2023-03-19 | 안녕하세요
B1 | 2023-03-21 | 안녕하세요
C1 | 2023-03-20 | 안녕하세요
만약, DECODE ~ DESC 로 주면 최하단 정렬
ORDER BY DECODE(CUSTOMER_NO, #{custNo}, 1) DESC