programing

하나의 선택 문에서 두 열을 정렬하는 데 도움이 필요합니다.

muds 2023. 9. 13. 23:58
반응형

하나의 선택 문에서 두 열을 정렬하는 데 도움이 필요합니다.

제가 한 열의 데이터를 분류할 수 있다는 것을 알고 있습니다.ORDER BY, 두 개의 열을 분류하고 싶습니다.ORDER BY결과를 하나의 테이블 보기에 표시합니다.

쉼표로 구분된 목록을 사용해 보았지만 원하는 대로 정렬되지 않습니다.특정 위치에 있어야 하는 행과 독립적으로 두 열을 모두 정렬했으면 합니다.

SELECT * FROM top_5_films ORDER BY position DESC;

두 데이터 열을 모두 정렬하고 필드를 행에 묶지 않기를 원합니다.

@forpas가 언급한 바와 같이, 관련 없는 데이터의 레코드를 생성하려고 하는 것 같습니다. SQL에서는 이 요구 사항이 상당히 이상합니다.

RDBMS가 윈도우 기능을 지원한다고 가정합니다.ROW_NUMBER(), 당신은 다음과 같이 진행할 수 있습니다.

  • 두 열 각각에 대해 열을 선택하고 열 자체별로 정렬된 각 레코드에 행 번호를 할당하는 하위 쿼리를 만듭니다.
  • 그리고나서JOIN행 번호의 양쪽 서브쿼리
  • 마지막으로 행 번호별로 정렬합니다.

고려 사항:

SELECT c1.col1, c2.col2
FROM 
    (
        SELECT col1, ROW_NUMBER() OVER(ORDER BY col1) rn FROM top_5_films
    ) c1
    INNER JOIN (
        SELECT col2, ROW_NUMBER() OVER(ORDER BY col2) rn FROM top_5_films
    ) c2  ON c1.rn = c2.rn
ORDER BY c1.rn

DB Fiddle 데모:

샘플 데이터:

| col1 | col2 |
| ---- | ---- |
| ghi  | RST  |
| abc  | UVW  |
| lmn  | OPQ  |

결과:

| col1 | col2 |
| ---- | ---- |
| abc  | OPQ  |
| ghi  | RST  |
| lmn  | UVW  |

언급URL : https://stackoverflow.com/questions/55435901/need-help-sorting-two-columns-in-one-select-statement

반응형