order by 에도 조건을 지정할 수 있나요? 0 6 1,311

by 보일듯말듯 [2015.03.18 17:47:08]


jg_code

1111

.....

5125
5126
5125
5126
5131
5131
6118
6118
6118
6133
6151
6151

데이터가 있고 정렬을 하면

ORDER BY substr(jg_code,1,3)

위에 순서대로 됩니다. 되는데요

5125
5126
5125
5126

이 부분만 4자리로서 정렬 할 수 있을까요?

5125 5125 5126 5126

정렬을 할 수는 없을까요???

4자리로 하면  웹페이지에 보여지는 전체적인 틀이 틀어져서 3자리로 합니다.

 

 

 

by 마농 [2015.03.18 17:54:31]

전체 4자리로 정렬하면 안되는 이유가 뭘까요?


by 보일듯말듯 [2015.03.24 15:11:19]

웹페이지에서 보여지는게 틀어집니다.

웹페이지에 단순하게 나열해서 보여주는게 아니라

같은 제조사 , 품명등이 있으면 이걸 묶음으로 보여줍니다.

예를들어 차량의 제조사, 차명은 같은데 세부명칭이 틀린경우

이걸 웹페이지에서 보여주는데 쿼리에서 정렬된상태로 값을 가지고 보여주고 있습니다.

 


by 개발뉴비 [2015.03.18 17:59:04]

ORDER BY substr(jg_code,1,3), jg_code

데이터 값이 모두 네자리인데 웹 페이지의 틀이 틀어지는 경우가 어떤 경운지 저도 궁금하네요...


by 창조의날개 [2015.03.18 18:01:10]

ORDER BY substr(jg_code,1,3), jg_code 랑

ORDER BY jg_code랑 차이가 있을까요?

 

<4자리로 하면  웹페이지에 보여지는 전체적인 틀이 틀어져서 3자리로 합니다.>라고 하셨는데..

ORDER BY 절과 보여지는 건 상관이 없을텐데요.. 

SELECT 절에서는 substr(jg_code,1,3) 쓰고

ORDER BY 절에서는 ORDER BY jg_code 하셔도 될듯..


by 마농 [2015.03.24 15:17:12]

결국 문제는 jg_code 정렬이 문제는 아닌듯 합니다.
다른 항목이 어떻게 정렬되어 나오는지가 문제인 듯 하구요.
하지만 정렬기준은 jg_code 하나 뿐인거죠.
이 항목은 중복값을 가진 정렬키입니다.
중복값을 가진 키로 정렬할 때
나머지 항목들이 어떻게 정렬될지는 아무도 모릅니다.
또한 정렬할 때마다 같은 정렬결과가 나온다고 보장할수도 없습니다.
이문제의 해결방법은 중복키가 아닌 유일키 조건이 정렬키로 추가되어야 합니다.
원하시는 정렬결과를 얻을 수 있는 유일키 조건이 정렬키로 추가되어야 합니다.


by 보일듯말듯 [2015.04.10 13:34:08]

답변 감사합니다.

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