TIL

Oracle In절 순서대로 select하기

하얀잔디 2024. 5. 30. 17:57

select name from table where id in ( 5 ,3 ,2 )

 

라는 명령어를 쓰면 5, 3 , 2 에 맞는 순서를 보장해주지 않고 예측할수 없게 나타난다.

 

이는 오라클 내부적인 방식에 따른것이라. 만약 순서대로 받고싶은 경우에는

 

SELECT *
FROM employees
WHERE employee_id IN (3, 1, 2)
ORDER BY CASE employee_id
WHEN 3 THEN 1
WHEN 1 THEN 2
WHEN 2 THEN 3
ELSE 4
END;

 

같은 느낌으로 CASE WHEN 절을 사용하면 된다

혹은 DECODE 함수를 사용하자!

https://sihyung92.oopy.io/a2a7a397-653d-439b-839a-f71f16aa0018

 

Oracle, Mysql에서 IN절 순서와 동일하게 정렬하고 싶을 때

목표 : Oracle에서 In절에 들어가는 순서대로 출력 순서를 정하는 방법을 알아본다

sihyung92.oopy.io

 

 

하지만 대부분의 경우 정렬의 경우와 출력 경우를 앱단에서 처리하는게 많다고 하니 될 수 있으면 앱단에서 처리하자!

'TIL' 카테고리의 다른 글

ec2 db 원격들어가서 바꾸기  (0) 2024.06.05
java 람다식에서는 종단변수를 사용해야함.  (0) 2024.06.05
http header  (1) 2024.05.28
Json + 이미지 같이받는법  (1) 2024.05.27
build.gradle에서 compileOnly란?  (1) 2024.04.04