2013-02-28 3 views
0

테이블이 있는데 'road_id'열에 따라 주문하고 싶습니다. 그러나 동시에 동일한 road_id reamin의 모든 행을 그대로 사용하고 싶습니다.테이블에 주문하기

enter image description here

이 같은 문제를 할 수 있나요 :의 I가 테이블을 참조하고있다 다음?

+3

위해 (...이 기록은 SQL 데이터베이스에 저장되어 가정을), ID –

+0

당신은 "순서를 무엇을 의미합니까 그들은 "? - 행을 주문하지 않으면 주문되지 않습니다. 그들이 order by없이 다시 돌아 오는 순서는 임의적이다. (구현 세부 사항으로 인해 일반적으로 일관 되긴하지만) – Blorgbeard

+0

내 포인트 열 @ user1389596 –

답변

6

SQL에 "순서는"없습니다.

ORDER BY으로 명시 적으로 선택하지 않으면 데이터가 정렬되지 않습니다. 이 같은 road_idid에 의해 순서를 유지하려면

, 이것을 사용 :

SELECT * 
FROM mytable 
ORDER BY 
     road_id, id 
+0

re : "SQL에있는 순서"가 없습니다. 엄격히 진실하지 않다. SQL 언어는 행 순서를 볼 수 없지만 SQL의 많은 구현은 있습니다. 그리고 "주문을 그대로"정의하는 추가 필드가있을 수 있습니다. –

+2

@PieterGeerkens : 답변을 변경 하시겠습니까? – Quassnoi

+0

아니요, 해설을 조금 완벽하게 마무리하려고합니다. –

2

을 "나머지 순서"에 의해 당신이 ID에 의해 주문을 의미한다고 가정하면 다음이 필요합니다 :

ORDER BY road_id, id

검색어가 다음과 같이 표시됩니다.

SELECT * FROM YourTable ODER BY road_id, id 
+0

답변이나 질문입니까? 답을 명확히 할 수 있습니까? – bobs

+1

@bobs - 귀하의 승인을 받고 있습니까? –

3

주문을 보장하는 유일한 방법은 ORDER BY입니다. 특정 순서로 결과를 원하면 ORDER BY을 사용하십시오.

SELECT 
    <stuff> 
FROM 
    <table> 
ORDER BY 
    road_Id, ID 

실제 테이블의 순서 변경은 의미가 없습니다.

0

난 당신이 다음과 같이 수행 할 있으리라 믿고있어 : road_id에 의해

SELECT * FROM road_table ORDER BY road_id ASC, id ASC 
+0

나는 이미 주문 된 모든 칼럼 포인트를 가지고있다. 이제 나는 오름차순으로 road_id를 가져오고 싶습니다만, 포인트 열에 영향을주지 않고 road_id를 정렬 할 수 있는지 의심 스럽습니까? @ilikemypizza –

+0

@IT_info - 원본 테이블의보기/보고서를 만들거나 데이터를 변경 하시겠습니까? –

+0

원본 테이블의 데이터를 변경하십시오. 모든 점은 이미 특정 방식으로 정렬되어 있습니다.나는 같은 road_id와 포인트 사이의 순서를 변경하지 않고도 road_id를 정렬하고 싶습니다 road_id –

관련 문제