728x90


-- 테이블 생성
CREATE TEMPORARY TABLE t ( 
	id1		INT
,	id2		INT
,	id3		INT
,	val		int
)
;

-- 테스트 데이터 입력
INSERT INTO t
SELECT 1 AS id1, 2 as id2, 3 AS id3, 1 AS val UNION ALL 
SELECT 2 AS id1, 1 as id2, 3 AS id3, 1 AS val UNION ALL 
SELECT 3 AS id1, 2 as id2, 1 AS id3, 1 AS val UNION ALL 
SELECT 2 AS id1, 3 as id2, 1 AS id3, 1 AS val
;

--  id1,id2,id3 값을 큰 값부터 max_id, mid_id, min_id로 재배치 한다. 
SELECT 	GREATEST(id1, id2, id3)	max_id
	, 	IF( id1 NOT IN ( GREATEST(id1, id2, id3), LEAST(id1, id2, id3) ), id1, IF( id2 NOT IN ( GREATEST(id1, id2, id3), LEAST(id1, id2, id3) ), id2, id3))	mid_id
	,	LEAST(id1, id2, id3) 	min_id
	,	id1, id2, id3
FROM 	t
;

<실행결과>

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
반응형