리스트 정렬 할때 두 필드에서 비교하여 먼저인 데이터값 순으로 정렬하고싶습니다.

리스트 정렬 할때 두 필드에서 비교하여 먼저인 데이터값 순으로 정렬하고싶습니다.

QA

리스트 정렬 할때 두 필드에서 비교하여 먼저인 데이터값 순으로 정렬하고싶습니다.

답변 3

본문

두개의 필드가 있는데 아래는 예시입니다.
date_A / date_B
둘다 날짜 데이터가 들어가 있습니다.

이 두 필드를 함께 비교해서 
date_A 든 date_B 든 
먼저인 날짜가 먼저 나오도록 정렬하고 싶습니다.

order by date_A desc , date_b desc 로 할경우

date_A로 먼저 정렬 후 date_B로 정렬인데 이경우가 아닌

date_A와 date_B 비교후 날짜 순으로 정렬을 하고 싶습니다.

방법이 있을까요?

 

이 질문에 댓글 쓰기 :

답변 3

GREATEST = 2개의 필드중 큰 값을 대입한다.

SELECT *, GREATEST(date_A, date_B) AS re_datetime FROM 테이블명 ORDER BY re_datetime desc

 

LEAST = 2개의 필드중 낮은 값을 대입한다.

SELECT *, LEAST(date_A, date_B) AS re_datetime FROM 테이블명 ORDER BY re_datetime desc

 

[그누보드 게시판 응용]

SELECT *, GREATEST(wr_datetime, wr_last) AS re_datetime FROM 게시판테이블명 ORDER BY re_datetime desc

해당 게시판에서 wr_datetime(글작성일자)와 wr_last(수정일자)중 최신을 구하여,

최신순으로 정렬한다.

저는 이런경우에 서브쿼리(하위질의)를 붙여서 해결한 경험이 있네요

값비교 order 써도 될겁니다.

 

ORDER BY LEAST(date_a, date_b) ASC

 

이걸로 해보세요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,543
© SIRSOFT
현재 페이지 제일 처음으로