[SQL] 여러 날짜필드 중에서 가장 빠른 날짜만가져오기 0 3 2,577

by 쿼리냠냠 [2018.12.10 11:15:05]


구루비 회원님들 안녕하세요. 

쿼리중 궁금한게 있어 문의드립니다.

테이블을 보시죠.
Table : board

 

id name date1 date2 date3
1 감자 2018-11-11 01:00:00 2018-10-10 02:00:00 2018-12-12 03:00:00
2 고구마 2018-12-01 04:00:00 2018-10-01 05:00:00 2018-11-01 06:00:00
3 피자 2018-11-05 07:00:00 2018-12-05 08:00:00 2018-10-05 09:00:00


board테이블에는 감자/고구마/피자의 데이터가 있습니다. 
각 데이터별로 date1/date2/date3 중 빠른 날짜는 다음과 같습니다.

감자 : 2018-12-12 03:00:00
고구마 : 2018-12-01 04:00:00
피자 : 2018-12-05 08:00:00


*제가 원하는 쿼리* 

name date( 3개의 날짜필드 중에서 가장 빠른날짜 )
감자 2018-12-12 03:00:00
고구마 2018-12-01 04:00:00
피자 2018-12-05 08:00:00


CASE WHEN을 써서 '>'로 비교하게 되면 케이스가 비교문이 너무 길어지는 것 같습니다. 
EX) ( date1 > date2 && date1 > date3) || (date2 > date1 && date2 > date3) || (date3 > date1 && date3 > date2)

혹시 SQL문에서도 가장 최근날짜를 구하기위한 함수(?)나 응용 할 만한 로직이 있을까요?

 

감사합니다. 좋은 하루보내세요.

by 우리집아찌 [2018.12.10 11:26:05]

DB가 오라클 이시면

 GREATEST (date1, date2, date3 ) -- 최대값

LEAST  (date1, date2, date3 ) -- 최소값 

http://www.gurubee.net/lecture/1029


by 쿼리냠냠 [2018.12.10 11:43:12]

답변감사드립니다.

ㅠㅠ 디비는 MYSQL입니다.

찾아볼게요!
 


by 우리집아찌 [2018.12.10 12:23:48]
-- 마리아DB 10.3 버젼인데 되네요.

 SELECT GREATEST(10, 20);
 SELECT LEAST(10, 20);

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입