두 열의 숫자를 기준으로 정렬 할 테이블이 있습니다 (열 X와 열 Y라고 함). 각 행에서 두 열은 숫자 값 (이 경우 X < = Y)을 갖거나 열 중 하나가 NULL 일 수 있습니다.SQL : 두 개의 열의 인터레이스 된 값을 기반으로 한 ORDER BY
예 데이터 : 열이 "제대로"인터리브 있도록
X Y
----- -----
... NULL 26
... 31 NULL
... 1 7
... 39 46
... NULL 36
... 15 16
... NULL 14
... 23 29
나는이 데이터를 정렬하고 싶습니다. 구체적으로는 다음 Y 값은 두 개의 행에 존재하는 경우, X 값은 두 행에 있으면
1) 순서 X.에 기초
2) 그렇지, 순서
Y.
에 기초 3) 그렇지 않으면 사용 가능한 X 값과 사용 가능한 Y 값을 비교합니다.예제 데이터의 "올바른"정렬은 다음과 같습니다
X Y
----- -----
... 1 7
... NULL 14
... 15 16
... NULL 26
... 23 29
... 31 NULL
... NULL 36
... 39 46
이 정렬을 수행 할 수있는 간단한 방법은 ORDER BY 절에 있나요?
어디에서'... 25 NULL'을 (를) 배치 하시겠습니까? –
그것은 23/29와 31/NULL 사이가 될 것입니다. 두 행에 모두 채워진 경우 X 열을 기준으로 정렬하는 것이 우선 순위가됩니다. 명확하게하기 : 목표는 두 열의 값이 해당 열의 다른 값과 관련하여 정렬되도록하는 것입니다. 분명한 이유는 X 열에서 항상 가능하며 일반적으로 Y 열에서 "닫기"를 얻을 수 있습니다 - 25/27 고려하십시오. 비록 Y 칼럼에서 약간의 오더 오더링이 발생하더라도 23/29 이후에야 만 할 것입니다. – VeeArr