0
간단한 MySQL 선택이 있으며 회사 이름과 이름으로 주문하고 싶습니다. 테이블의 열은 다음과 같습니다MySQL ORDER BY 빈 열에 대한 보상
COMPANY_NAME
FIRST_NAME
LAST_NAME
나는에 의해 표준 ORDER으로 실행을 선택하면, 다음과 같은 얻을 : 그러나
SELECT COMPANY_NAME, FIRST_NAME, LAST_NAME
from TABLE_contacts
WHERE CONTACT_STATUS = 'ACTIVE'
ORDER BY COMPANY_NAME, FIRST_NAME;
+------------------+------------+-----------+
| COMPANY_NAME | FIRST_NAME | LAST_NAME |
+------------------+------------+-----------+
| | Bob | Jones |
| | Mark | Doe |
| Acme Company | Joan | Todd |
| Fun Company | | |
+------------------+------------+-----------+
을 목록이 알파벳순으로 필요합니다. 회사 이름이 비어 있거나 이름이 비어있는 경우가 있습니다. 나는 문 아래 해봤
+------------------+------------+-----------+
| COMPANY_NAME | FIRST_NAME | LAST_NAME |
+------------------+------------+-----------+
| Acme Company | Joan | Todd |
| | Bob | Jones |
| Fun Company | | |
| | Mark | Doe |
+------------------+------------+-----------+
하지만 내 결과는 동일합니다 : 내 목표는이 같은 출력하지 않는 경우가 존재하고 이름 경우 회사 이름을 사용하여 알파벳 순서로 나열하는 것입니다 :
SELECT COMPANY_NAME, FIRST_NAME, LAST_NAME
from TABLE_contacts
WHERE CONTACT_STATUS='ACTIVE'
ORDER BY CASE WHEN COMPANY_NAME IS NULL THEN FIRST_NAME ELSE COMPANY_NAME END DESC;
도움 주셔서 감사합니다!
안녕하세요! 빠른 답변 감사합니다. 불행하게도, 회사 이름이없는 연락처가 먼저 표시되는 첫 번째 예제와 동일한 결과를 얻었습니다. – Jason
@ Jason. . . 수정 된 쿼리를 사용해보십시오. –
그 트릭을 했어 - 고마워! – Jason