SQL 사례 구문 구문?sql


Answers

여러 제품에 태그를 추가했다고 가정하면 ISO / ANSI SQL-92 표준에서 발견되는 전체 구문이 정확하다고 말할 수 있습니다.

<case expression> ::=
       <case abbreviation>
     | <case specification>

<case abbreviation> ::=
       NULLIF <left paren> <value expression> <comma>
              <value expression> <right paren>
     | COALESCE <left paren> <value expression>
                { <comma> <value expression> }... <right paren>

<case specification> ::=
       <simple case>
     | <searched case>

<simple case> ::=
     CASE <case operand>
          <simple when clause>...
        [ <else clause> ]
     END

<searched case> ::=
     CASE
       <searched when clause>...
     [ <else clause> ]
     END

<simple when clause> ::= WHEN <when operand> THEN <result>

<searched when clause> ::= WHEN <search condition> THEN <result>

<else clause> ::= ELSE <result>

<case operand> ::= <value expression>

<when operand> ::= <value expression>

<result> ::= <result expression> | NULL

<result expression> ::= <value expression>

구문 규칙

1) NULLIF (V1, V2) is equivalent to the following <case specification>:

     CASE WHEN V1=V2 THEN NULL ELSE V1 END

2) COALESCE (V1, V2) is equivalent to the following <case specification>:

     CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END

3) COALESCE (V1, V2, . . . ,n ), for n >= 3, is equivalent to the
   following <case specification>:

     CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,n )
     END

4) If a <case specification> specifies a <simple case>, then let CO
   be the <case operand>:

   a) The data type of each <when operand> WO shall be comparable
      with the data type of the <case operand>.

   b) The <case specification> is equivalent to a <searched case>
      in which each <searched when clause> specifies a <search
      condition> of the form "CO=WO".

5) At least one <result> in a <case specification> shall specify a
   <result expression>.

6) If an <else clause> is not specified, then ELSE NULL is im-
   plicit.

7) The data type of a <case specification> is determined by ap-
   plying Subclause 9.3, "Set operation result data types", to the
   data types of all <result expression>s in the <case specifica-
   tion>.

Access Rules

   None.

General Rules

1) Case:

   a) If a <result> specifies NULL, then its value is the null
      value.

   b) If a <result> specifies a <value expression>, then its value
      is the value of that <value expression>.

2) Case:

   a) If the <search condition> of some <searched when clause> in
      a <case specification> is true, then the value of the <case
      specification> is the value of the <result> of the first
      (leftmost) <searched when clause> whose <search condition> is
      true, cast as the data type of the <case specification>.

   b) If no <search condition> in a <case specification> is true,
      then the value of the <case expression> is the value of the
      <result> of the explicit or implicit <else clause>, cast as
      the data type of the <case specification>.
Question

SQL Case 문에 대한 완전 하고 올바른 구문은 무엇입니까?




Sybase는 SQL Server와 동일한 구문 을 사용합니다.

기술

조건부 SQL 표현식을 지원합니다. 값 표현식을 사용할 수있는 곳이면 어디서든 사용할 수 있습니다.

통사론

case 
     when search_condition then expression 
    [when search_condition then expression]...
    [else expression]
end

사례 및 값 구문

case expression
     when expression then expression 
    [when expression then expression]...
    [else expression]
end

매개 변수

케이스

사례 표현을 시작합니다.

언제

검색 조건이나 비교할 표현식 앞에옵니다.

search_condition

선택한 결과에 대한 조건을 설정하는 데 사용됩니다. 대소 문자 표현식의 검색 조건은 where 절의 검색 조건과 유사합니다. 검색 조건은 Transact-SQL User 's Guide에서 자세히 설명합니다.

그때

대 / 소문자의 결과 값을 지정하는 표현식 앞에옵니다.

표현

상수, 함수, 하위 쿼리 또는 산술 또는 비트 연산자로 연결된 열 이름, 상수 및 함수의 조합입니다. 표현식에 대한 자세한 내용은의 "표현식"을 참조하십시오.

select disaster, 
       case
            when disaster = "earthquake" 
                then "stand in doorway"
            when disaster = "nuclear apocalypse" 
                then "hide in basement"
            when monster = "zombie apocalypse" 
                then "hide with Chuck Norris"
            else
                then "ask mom"
       end 
  from endoftheworld



11g 설명서에서 Oracle 구문 :

CASE { simple_case_expression | searched_case_expression }
     [ else_clause ]
     END

simple_case_expression

expr { WHEN comparison_expr THEN return_expr }...

searched_case_expression

{ WHEN condition THEN return_expr }...

else_clause

ELSE else_expr



Case statement syntax in SQL SERVER.

CASE column
WHEN value1 THEN 1
WHEN value3 THEN 2
WHEN value3 THEN 3
WHEN value1 THEN 4
ELSE ''
END

And we can use like below also:

CASE 
WHEN column=value1 THEN 1
WHEN column=value3 THEN 2
WHEN column=value3 THEN 3
WHEN column=value1 THEN 4
ELSE ''
END