programing

대소문자명세서 vs 대소문자명세서

elecom 2023. 9. 25. 22:15
반응형

대소문자명세서 vs 대소문자명세서

MySQL에서 대소문자 표현식대소문자 문장의 차이점은 무엇입니까?언제 사용할 수 있으며, 하나를 다른 하나보다 사용하면 어떤 이점이 있습니까?

대소문자 구문:

CASE
  WHEN search_condition THEN statement_list
  [WHEN search_condition THEN statement_list] ...
  [ELSE statement_list]
END CASE

대소문자 표현 구문:

CASE 
  WHEN [condition] THEN result 
  [WHEN [condition] THEN result ...] 
  [ELSE result] 
END

이것들은 거의 동일해 보이지만, Case Statement에 대한 최초의 설명은 다음과 같습니다.The CASE statement for stored programs implements a complex conditional construct.

그렇다면 저장된 프로그램에서 사용되고 일반 쿼리에서는 사용할 수 없는 중요한 차이점은 무엇입니까?나는 이것을 가지고 놀던 쿼리에 시도해 보았는데 실패했습니다 - sqlfiddle.이 경우에도 저장된 프로그램에서 Case Expression을 사용하는 것이 어떨까요?

동일한 것 같은데 다른 통사적 차이는 없나요?

CASE식을 값으로 평가합니다. 즉, 어떤 조건에 따라 결과 집합 중 하나로 평가하는 데 사용됩니다.
예:

SELECT CASE
    WHEN type = 1 THEN 'foo'
    WHEN type = 2 THEN 'bar'
    ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`

CASEstatement는 어떤 조건에 따라 문 집합 중 하나를 실행합니다.
예:

CASE
    WHEN action = 'update' THEN
        UPDATE sometable SET column = value WHERE condition;
    WHEN action = 'create' THEN
        INSERT INTO sometable (column) VALUES (value);
END CASE

이들이 어떻게 유사한지 알 수 있지만 문은 값으로 평가하지 않고 자체적으로 사용할 수 있는 반면, 표현식은 식(예: 쿼리 또는 할당)의 일부여야 합니다.쿼리에는 문이 포함될 수 없기 때문에 쿼리에 문을 사용할 수 없습니다. 예를 들어 쿼리 자체는 문장입니다.SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE말이 되지 않는.

언급URL : https://stackoverflow.com/questions/12436859/case-expression-vs-case-statement

반응형