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
하지만 대부분의 경우 정렬의 경우와 출력 경우를 앱단에서 처리하는게 많다고 하니 될 수 있으면 앱단에서 처리하자!
'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 |