>  Q&A  >  본문

mysql 결과를 두 개의 열로 정렬하지만 "구멍" 열이 있음

제 초기 상황은 다음과 같습니다.

으아아아

다음 스키마를 통해 이 테이블을 생성할 수 있습니다.

으아아아

목표는 열에 언급된 정확한 위치에서 각 행에 NULLforcedRank 列的行放置在此 forcedRank이 포함되지 않도록 하는 것입니다. 예상되는 렌더링은 다음과 같습니다:

으아아아

보시다시피 NULL이 아닌 경우 NULL이 아닌 행이 차지하지 않는 위치에서 forcedRank 列排序的位置。当 NULL 行仍然按 legacyRank 열을 기준으로 정렬하면 각 행이 취해지지만 강제된 행은 절대 이동되지 않습니다.

이 순서에 따라 다음과 같은 ORDER BY 中使用 CASE WHEN 구문을 사용해 보았습니다.

으아아아

하지만 결과는 내 기대에 미치지 못했습니다.

으아아아

그렇다면 legacyRank열 순서를 이동하지 않고 강제 순위 행 이상으로 만들려면 어떻게 해야 할까요?

P粉118698740P粉118698740375일 전377

모든 응답(1)나는 대답할 것이다

  • P粉141925181

    P粉1419251812023-09-12 09:02:45

    NULL 不能像您需要使用 IS 那样进行比较,或者在您的情况下使用 IS NOT

    으아악
    레거시랭크 강제 순위
    0 비어있음
    1 비어있음
    4 1
    6 2
    3 비어있음
    5 비어있음
    2 6
    7 비어있음

    바이올린

    첫 번째 답변으로는 정답이 나오지 않으니까요.

    새 강제 순위보다 커지도록 원래 숫자에 소수점을 추가하여 순서를 변경했습니다.

    순서를 유지하고 숫자가 기존 순위보다 작아지도록 하며 다음과 같은 결과를 얻습니다

    으아악
    레거시랭크 강제 순위
    0 비어있음
    4 1
    1 비어있음
    6 2
    3 비어있음
    5 비어있음
    2 6
    7 비어있음

    바이올린

    회신하다
    0
  • 취소회신하다