이름. 번호 . 집주소
-----------------------------
홍길동. 1 . 서울
홍길동. 2 . 인천
홍길동. 3 . NULL
홍길동. 4 . 대구
이순신. 1 . 경기
이순신. 2 . NULL
이순신. 3 . 대전
이순신. 4 . 전주
다음과 같이 값이 들어가있을때 , 이름별 집주소를 정렬하여 다시 번호를 주고 싶습니다 .
변경
-----------------------------
홍길동. 1 . 대구
홍길동. 2 . 서울
홍길동. 3 . 인천
홍길동. 4 . NULL
이순신. 1 . 경기
이순신. 2 . 대전
이순신. 3 . 전주
이순신. 4 . NULL
정렬 할 때, NULL 부분은 무조건 집주소 정렬시 번호가 끝으로 갈 수 있도록(?)
조건을 주고 싶은데 어떻게 짜야할지 ㅜ.ㅜ막막합ㄴㅣ닷 고수님들 도와주쎄요우ㅜ
Comment 5
-
군고구마
2013.11.07 11:34
-
nowaday_
2013.11.07 11:50
아 실은 NULL 값이 아니라 그냥 예제로 생각해 본다면 '없음' 이라는 값이 NULL 부분이라고 생각하면 되는뎅! ㅠㅠ
그렇게 되도 정렬이 안되네용 ㅠ.ㅜ특정 단어를 row_number 할때 뒷 번호로 처리해준다(?) 이런 개념으로 생각하고 있어서용 ㅠ.ㅠ
-
군고구마
2013.11.07 12:00
아니면 null값을 모두 해당 값에서 가장 큰 값 예를 들면 숫자가 1~100까지 있으면 101로 변경하고
이런식으로 해서 정렬해도 위와 같이 정렬되지 않을까요? 물론 실제로 바꾸기 보다는 case로 한번 풀어서 사용하면 될듯 합니다.
-
nowaday_
2013.11.07 13:28
row_number() over(partition by 이름 order by(case when 집주소 is null then 1 else 0 end), 집주소) as num
이런식으로 하면 되는 것 같습니다!!!
case 문으로 풀고, 원하는 조건으로 partition으로 주니까 한번에 처리 가능하네용!!!!ㅎㅎ
댓글도 감사합니다아~!
-
항해자™
2013.11.08 02:17
ROW_NUMBER() OVER(PARTITION BY 이름 ORDER BY 이름 DESC, ISNULL(지역,'힣힣힣'))
저의 짧은 지식으로는
order by 이름 desc , 번호 asc
하면 될듯 싶습니다.
만약 row_number로 하면 같은 조건을 row_number에 추가해서 사용하면 위와 같이
나올 것으로 생각됩니다.