MySQL Switch-Case가 올바른 값을 선택하지 않는 이유는 무엇입니까?

난 타코를 좋아해

Mysql에서 CASE 문을 사용하려고하는데 MySQL이 내 쿼리에 대해 불평하지 않지만 올바른 결과를 제공하지 못합니다.

내가하려는 것은 다음과 같습니다.

if value < 20 then 1
elseif value < 30 then 2
elseif value < 40 then 3
.
.
.
else value < 90 then 45 

그리고 이것은 내 MySQL 진술입니다.

SELECT
    UM.DA,
    UM.PA,
    IF((UM.DA - UM.PA) > 25, UM.DA, UM.PA) AS "PS",
CASE
    WHEN "PS" < 20 THEN 1
    WHEN "PS" < 30 THEN 2
    WHEN "PS" < 40 THEN 3
    WHEN "PS" < 50 THEN 5
    WHEN "PS" < 60 THEN 8
    WHEN "PS" < 70 THEN 12
    WHEN "PS" < 80 THEN 20
    WHEN "PS" < 90 THEN 30
    WHEN "PS" >= 90 THEN 45
END AS "Points",
FROM
    Table1 UM

그리고 이것은 내 결과 세트입니다.

+-------+-------+--------+--------+
| UM.DA | UM.PA |   PS   | Points |
+-------+-------+--------+--------+
| 19.21 | 18.39 |  18.39 |    1   |
+-------+-------+--------+--------+
| 24.80 | 34.91 |  34.91 |    1   |
+-------+-------+--------+--------+
| 29.72 | 35.89 |  35.89 |    1   |
+-------+-------+--------+--------+

내 결과 결과는 다음과 같습니다.

+-------+-------+--------+--------+
| UM.DA | UM.PA |   PS   | Points |
+-------+-------+--------+--------+
| 19.21 | 18.39 |  18.39 |    1   |
+-------+-------+--------+--------+
| 24.80 | 34.91 |  34.91 |    3   |
+-------+-------+--------+--------+
| 29.72 | 35.89 |  35.89 |    3   |
+-------+-------+--------+--------+

그렇다면 MySQL 쿼리에서 "CASE"를 사용하는 올바른 방법은 무엇입니까 (저장 프로 시저가 아니라 쿼리)

또한 성능 측면에서이 논리를 SQL 쿼리에 넣는 것이 더 낫습니까? 아니면 내가 선택한 프로그래밍 언어로 결과를 필터링해야합니까?

감사!

Barmar

이 시도:

SELECT DA, PA, PS,
       CASE
           WHEN PS < 20 THEN 1
           WHEN PS < 30 THEN 2
           WHEN PS < 40 THEN 3
           WHEN PS < 50 THEN 5
           WHEN PS < 60 THEN 8
           WHEN PS < 70 THEN 12
           WHEN PS < 80 THEN 20
           WHEN PS < 90 THEN 30
           ELSE 45
       END AS "Points"
FROM (SELECT DA, PA,
             IF((DA - PA) > 25, DA, PA) AS PS
      FROM Table1 UM) temp

PS계산을 하위 쿼리로 이동하므로 계산을 CASE반복하지 않고도 식에서 참조 할 수 있습니다 . 그리고 PS문자열이 아닌 이름이어야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL Switch-Case가 올바른 값을 선택하지 않는 이유는 무엇입니까?

분류에서Dev

내 함수가 올바른 입력 선택을 감지하지 못하는 이유는 무엇입니까?

분류에서Dev

Chrome / Firefox가 올바른 문자 인코딩을 선택하지 못하는 이유는 무엇입니까?

분류에서Dev

올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

분류에서Dev

find ()가 올바른 값을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

getServerSideProps가 구성 요소 소품에 올바른 값을 전달하지 않는 이유는 무엇입니까?

분류에서Dev

내 js 코드가 올바른 런타임 값을 반영하지 않는 이유는 무엇입니까?

분류에서Dev

내 함수가 올바른 값을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

Closure-maven-plugin이 올바른 Java 버전을 선택하지 않는 이유는 무엇입니까?

분류에서Dev

mockito가 올바른 응답을 주입하지 않는 이유는 무엇입니까?

분류에서Dev

이 코드가 올바른 출력을 제공하지 않는 이유는 무엇입니까?

분류에서Dev

내 변수가 Firestore에서 올바른 값을받지 못하는 이유는 무엇입니까?

분류에서Dev

내 editText가 Android에서 올바른 출력을 표시하지 않는 이유는 무엇입니까?

분류에서Dev

switch 문의 case로 최종 바이트가 컴파일되지 않는 이유는 무엇입니까?

분류에서Dev

switch 문의 case로 최종 바이트가 컴파일되지 않는 이유는 무엇입니까?

분류에서Dev

indexOf ()가 올바른 값에 -1을 반환하는 이유는 무엇입니까?

분류에서Dev

PHP json_encode가 배열로 전달 된 값에서 올바른 값을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내 TextBoxFor가 통화 값을 올바르게 표시하지 않는 이유는 무엇입니까?

분류에서Dev

이메일을 통해 올바른 행에서 값을 보내지 않는 이유는 무엇입니까?

분류에서Dev

MySQL이 내 외래 키의 이름을 올바르게 지정하지 않는 이유는 무엇입니까?

분류에서Dev

리버가 올바른 PIN을 추측하지 못하는 이유는 무엇입니까?

분류에서Dev

Typescript가 enum switch 문을 기반으로 올바른 유형을 유추 할 수없는 이유는 무엇입니까?

분류에서Dev

올바른 입력을 입력하면 switch 문이 무시되는 이유

분류에서Dev

cURL이 올바른 응답을 제공하지만 스크래피가 아닌 이유는 무엇입니까?

분류에서Dev

사용자가 올바른 자격 증명을 두 번 입력해야하는 이유는 무엇입니까?

분류에서Dev

사용자가 올바른 자격 증명을 두 번 입력해야하는 이유는 무엇입니까?

분류에서Dev

배우가 올바른 행동을 선택하도록 보장하는 방법은 무엇입니까?

분류에서Dev

jquery가 올바른 행을 선택하도록 만드는 방법은 무엇입니까?

분류에서Dev

Razor 페이지에서 올바른 텍스트 상자 값을 가져올 수없는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    MySQL Switch-Case가 올바른 값을 선택하지 않는 이유는 무엇입니까?

  2. 2

    내 함수가 올바른 입력 선택을 감지하지 못하는 이유는 무엇입니까?

  3. 3

    Chrome / Firefox가 올바른 문자 인코딩을 선택하지 못하는 이유는 무엇입니까?

  4. 4

    올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

  5. 5

    find ()가 올바른 값을 반환하지 않는 이유는 무엇입니까?

  6. 6

    getServerSideProps가 구성 요소 소품에 올바른 값을 전달하지 않는 이유는 무엇입니까?

  7. 7

    내 js 코드가 올바른 런타임 값을 반영하지 않는 이유는 무엇입니까?

  8. 8

    내 함수가 올바른 값을 반환하지 않는 이유는 무엇입니까?

  9. 9

    Closure-maven-plugin이 올바른 Java 버전을 선택하지 않는 이유는 무엇입니까?

  10. 10

    mockito가 올바른 응답을 주입하지 않는 이유는 무엇입니까?

  11. 11

    이 코드가 올바른 출력을 제공하지 않는 이유는 무엇입니까?

  12. 12

    내 변수가 Firestore에서 올바른 값을받지 못하는 이유는 무엇입니까?

  13. 13

    내 editText가 Android에서 올바른 출력을 표시하지 않는 이유는 무엇입니까?

  14. 14

    switch 문의 case로 최종 바이트가 컴파일되지 않는 이유는 무엇입니까?

  15. 15

    switch 문의 case로 최종 바이트가 컴파일되지 않는 이유는 무엇입니까?

  16. 16

    indexOf ()가 올바른 값에 -1을 반환하는 이유는 무엇입니까?

  17. 17

    PHP json_encode가 배열로 전달 된 값에서 올바른 값을 반환하지 않는 이유는 무엇입니까?

  18. 18

    내 TextBoxFor가 통화 값을 올바르게 표시하지 않는 이유는 무엇입니까?

  19. 19

    이메일을 통해 올바른 행에서 값을 보내지 않는 이유는 무엇입니까?

  20. 20

    MySQL이 내 외래 키의 이름을 올바르게 지정하지 않는 이유는 무엇입니까?

  21. 21

    리버가 올바른 PIN을 추측하지 못하는 이유는 무엇입니까?

  22. 22

    Typescript가 enum switch 문을 기반으로 올바른 유형을 유추 할 수없는 이유는 무엇입니까?

  23. 23

    올바른 입력을 입력하면 switch 문이 무시되는 이유

  24. 24

    cURL이 올바른 응답을 제공하지만 스크래피가 아닌 이유는 무엇입니까?

  25. 25

    사용자가 올바른 자격 증명을 두 번 입력해야하는 이유는 무엇입니까?

  26. 26

    사용자가 올바른 자격 증명을 두 번 입력해야하는 이유는 무엇입니까?

  27. 27

    배우가 올바른 행동을 선택하도록 보장하는 방법은 무엇입니까?

  28. 28

    jquery가 올바른 행을 선택하도록 만드는 방법은 무엇입니까?

  29. 29

    Razor 페이지에서 올바른 텍스트 상자 값을 가져올 수없는 이유는 무엇입니까?

뜨겁다태그

보관