2009-10-05 1 views
0

나는 다음과 같은 필드가 있습니다 지금 하나의 테이블과 데이터베이스가 나는 그것들을 저장하는 것이 효율적이지 않지만, 말했듯이 이것은 이것을하는 나의 첫 번째 라운드입니다.MYSQL에서 그룹화하는 것 외에도 필드 별 정렬 - sql에서 조건문을 사용할 수 있습니까? 이 테스트를 추적 할 수있는 데이터베이스의 처음 함께 해킹 구현이고, 나는이 방법은 실현</p> <p>이름, 스위트 룸</p> <p>:

일부 이름은 스위트에 속하며 일부는 그렇지 않습니다.

데이터를 가정은 다음과 같습니다 요법

Name | Suite 
ggg | NULL 
aaa | NULL 
ddd | a_suite 
fff | a_suite 
ccc | some_suite 
eee | some_suite 
bbb | NULL 

.. 나는 다음과 같은 명령을 실행하면

:

:

select distinct name,suite from webpagetest order by name,suite 

그럼 내가 같이 결과를 얻을 수를

Name | Suite 
aaa | NULL 
bbb | NULL 
ccc | some_suite 
ddd | a_suite 
eee | some_suite 
fff | a_suite 
ggg | NULL 

그러나, 내가 뭘 하려는지 먼저 스위트로 결과를 주문하고 스위트 필드가 null이 아니면 스위트 필드를 사용하여 알파벳순으로 정렬합니다. suite가 null의 경우는, 이름으로 알파벳 순으로한다. 아무것도 스위트 컬럼에 존재하지 않는 경우는 어떤 경우는 이름의 컬럼으로 구성되어

aaa | NULL 
ddd | a_suite 
fff | a_suite 
bbb | NULL 
ggg | NULL 
ccc | some_suite 
eee | some_suite 

및 스위트 null가 아닌 경우, 다음 대신 스위트 값을 사용합니다 : 그래서, 결과는 다음과 같아야합니다 .

이 글은 너무 저조한 것이 아니며, 누군가 내가 무엇을 묻고 있는지 이해할 수 있기를 바랍니다.

감사합니다. Matthew

답변

0

COALESCE을 사용하십시오. 지정된 매개 변수의 첫 번째 null이 아닌 값을 반환합니다.

SELECT name, suite 
FROM webpagetest 
ORDER BY COALESCE(suite,name) 
관련 문제