대소문자명세서 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
'programing' 카테고리의 다른 글
| 테두리가 있는 투명 원 (0) | 2023.10.05 |
|---|---|
| 저장 프로시저가 없는 경우 생성 (0) | 2023.10.05 |
| node-mysql을 사용하여 MySQL 연결을 닫을 때는 언제입니까? (0) | 2023.09.25 |
| 템플릿에서 ngTransclus 지시어를 잘못 사용했습니다. (0) | 2023.09.25 |
| SEGV_ACCERR은 무엇을 의미합니까? (0) | 2023.09.25 |