복붙노트

[SQL] 어떻게 먼저 특정 값으로 행을 반환합니까?

SQL

어떻게 먼저 특정 값으로 행을 반환합니까?

나는 열이 먼저 특정 값을 포함하는 테이블의 행을 반환하고 알파벳순으로 행의 나머지를 반환하는 내 쿼리를합니다.

나는이 예제 같은 테이블에 뭔가가있는 경우 :

 - Table: Users
 - id - name -  city
 - 1    George  Seattle
 - 2    Sam     Miami
 - 3    John    New York
 - 4    Amy     New York
 - 5    Eric    Chicago
 - 6    Nick    New York

그리고 내 질문에 내가 원하는 테이블을 사용하려면 먼저 뉴욕을 포함하는 행을 반환 한 다음 행의 나머지는 도시 알파벳 순서입니다. 이것은 단지 하나의 쿼리를 사용하여이 작업을 수행 할 수 있습니까?

해결법

  1. ==============================

    1.SQL 서버, 오라클, DB2, 그리고 다른 많은 데이터베이스 시스템에서, 이것은 당신이 사용할 수있는 것입니다 :

    SQL 서버, 오라클, DB2, 그리고 다른 많은 데이터베이스 시스템에서, 이것은 당신이 사용할 수있는 것입니다 :

    ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city
    
  2. ==============================

    2.당신의 SQL 언어는 숫자 값을 가진 것으로 부울 식을 치료하는 지능형 정도 인 경우에, 당신은 사용할 수 있습니다 :

    당신의 SQL 언어는 숫자 값을 가진 것으로 부울 식을 치료하는 지능형 정도 인 경우에, 당신은 사용할 수 있습니다 :

    SELECT *
    FROM `Users`
    ORDER BY (`city` = 'New York') DESC, `city`
    
  3. ==============================

    3.내 대답이 필요 오래된되지 않을 수 있지만 사람이 따라서 여기 게시, 다른 접근 방법이 필요할 수 있습니다.

    내 대답이 필요 오래된되지 않을 수 있지만 사람이 따라서 여기 게시, 다른 접근 방법이 필요할 수 있습니다.

    나는 같은 요구 사항은 나를 위해 일한이 구현했다.

    Select * from Users
    ORDER BY
    (CASE WHEN city = 'New York' THEN 0 ELSE 1 END), city
    GO
    

    추신

    이 SQL입니다

  4. from https://stackoverflow.com/questions/1250156/how-do-i-return-rows-with-a-specific-value-first by cc-by-sa and MIT license