[SQL] 하단에 널 (null)와 ORDER BY의 ASC
SQL하단에 널 (null)와 ORDER BY의 ASC
나는 지역 테이블에 학교 테이블을 연결하는 SQL 쿼리를 쓰고 있어요. 각 학교는 한 지역에 연결되어 일대 다 관계 간단한. 다음과 같이 내 쿼리는 다음과 같습니다
SELECT
schools.id AS schoolid,
schools.name AS school,
districts.id AS districtid,
districts.name AS district
FROM sms_schools AS schools
LEFT JOIN sms_districts AS districts ON schools.districtid = districts.id
WHERE 1 = 1
ORDER BY districts.name, schools.name
하지 모든 학교가 지구에 연결되어 있기 때문에이 왼쪽 조인 않은 이유입니다. 예를 들어 한 학교는 집 그 집 스쿨 모든 학생을 포함 할 수있다 스쿨 할 수있다. 즉 지구에 없을 것입니다.
그래서 내가하고 싶은 것은 지구 이름과 후 학교 이름 그대로 주문하여 순서를 사용합니다. 유일한 문제는 내가 널 지구 그래서 난 다음 내 출력의 끝에 '기타'라는 그룹을 사용할 수 있습니다 하단에되고 싶은 것입니다.
이것은 출력의 끝에 null로 오름차순 순서로 할 수있다?
해결법
-
==============================
1.내 대답을 볼 수있는 질문을 한 후 1 분. 수 있도록하는 조항 사용 사례에 의해 순서에서 널 (null)는 다른 것보다 더 높은 가치를 가지고 :
내 대답을 볼 수있는 질문을 한 후 1 분. 수 있도록하는 조항 사용 사례에 의해 순서에서 널 (null)는 다른 것보다 더 높은 가치를 가지고 :
ORDER BY (CASE WHEN districts.id IS NULL then 1 ELSE 0 END),districts.name, schools.name;
-
==============================
2.당신은 ISNULL () 함수를 사용할 수 있습니다.
당신은 ISNULL () 함수를 사용할 수 있습니다.
MySQL의 설명서에서 :
예를 들면 :
ORDER BY ISNULL(districts.name), districts.name, schools.name
내가 대신 MySQL을위한 CASE 옵션이 사용하는 것을 좋아합니다. ISNULL ()는 표준 SQL과 기능은 SQL의 다른 버전에서 다르게 아니기 때문에 그냥 휴대용 아니라고주의하십시오.
-
==============================
3.기본적으로 널 (null)는 상단에 발생하지만 당신은 당신이 필요로하는 위치에 넣어 것입니다 할당 기본값에 ISNULL을 사용할 수 있습니다 ...
기본적으로 널 (null)는 상단에 발생하지만 당신은 당신이 필요로하는 위치에 넣어 것입니다 할당 기본값에 ISNULL을 사용할 수 있습니다 ...
SELECT schools.id AS schoolid,schools.name AS school, districts.id AS districtid, districts.name AS district FROM sms_schools AS schools LEFT JOIN sms_districts AS districts ON schools.districtid = districts.id WHERE 1 = 1 ORDER BY isnull(districts.name,'1'), schools.name
-
==============================
4.
SELECT schools.id AS schoolid, schools.name AS school, districts.id AS districtid, districts.name AS district, if(schools.districtid IS NULL,1,0) as sort FROM sms_schools AS schools LEFT JOIN sms_districts AS districts ON schools.districtid = districts.id WHERE 1 = 1 ORDER BY sort, districts.name, schools.name
'새'colunm INSITE 더 이상 정렬 규칙을 놓고 어떤 번호를 사용 (... 만약에 의해 순서)는 디렉토리 경우에 정렬 할 수 있습니다 테스트하는 경우, 코드에서 필드를 숨기
행운을 빕니다
from https://stackoverflow.com/questions/5993109/order-by-asc-with-nulls-at-the-bottom by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 테이블의 끝에 NULL 값을 정렬 (0) | 2020.06.08 |
---|---|
[SQL] SQL 서버에서 외부 키를 사용하는 히트 심각한 성능이 있습니까? (0) | 2020.06.08 |
[SQL] 내부 사용 빌더 교리 쿼리 조건 가입 (0) | 2020.06.08 |
[SQL] T-SQL 조건부 주문 (0) | 2020.06.08 |
[SQL] SQL 제약 MINVALUE / MAXVALUE? (0) | 2020.06.08 |