Drukuj      Otwórz Pomoc bezpośrednią w wersji PDF


Poprzedni temat

Następny temat

Instrukcje Case

Instrukcje Case są blokami konstrukcyjnymi wyrażeń warunkowych dających różne wyniki dla różnych wartości kolumn.

Case (Switch)

Ta forma instrukcji Case jest także określana jako forma CASE (Lookup). Najpierw jest sprawdzana wartość wyrażenia1, a następnie — wyrażeń WHEN. Jeśli wyrażenie1 jest zgodne z którymkolwiek z wyrażeń WHEN, to jest przypisywana wartość z odpowiadającego mu wyrażenia THEN.

Jeśli wyrażenie1 jest zgodne z więcej niż jednym z wyrażeń WHEN, to jest przypisywane wyrażenie THEN występujące z pierwszym zgodnym wyrażeniem.

Jeśli żadne z wyrażeń WHEN nie jest zgodne, to jest przypisywana wartość określona w wyrażeniu ELSE. Jeśli nie podano wyrażenia ELSE, to jest przypisywana wartość NULL.

Proszę także się zapoznać z instrukcją Case (If).

Składnia:

CASE wyrażenie1

WHEN wyrażenie THEN wyrażenie

{WHEN wyrażenie... THEN wyrażenie...}

ELSE wyrażenie

END

Gdzie:

CASE

Początek instrukcji CASE. Po słowie kluczowym CASE musi występować wyrażenie i jedna lub więcej instrukcji WHEN ... THEN, opcjonalna instrukcja ELSE oraz słowo kluczowe END.

WHEN

Określa warunek, który powinien zostać spełniony.

THEN

Określa wartość, którą należy przypisać, gdy będzie spełniony odpowiadający mu warunek WHEN.

ELSE

Określa wartość, którą należy przypisać, jeśli nie będzie spełniony żaden z warunków WHEN. Jeśli wyrażenie ELSE nie zostanie podane, to będzie domyślnie przyjęta instrukcja ELSE NULL.

END

Kończy instrukcję CASE.

Przykład

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

W powyższym przykładzie instrukcje WHEN muszą obrazować ścisła równość; warunek WHEN w postaci

WHEN < 0 THEN 'Under Par'

jest niedozwolony, ponieważ nie można tu stosować operatorów porównania.

Case (If)

Ta forma instrukcji Case oblicza każdy warunek WHEN i, jeśli dany warunek jest spełniony, przypisuje wartość z odpowiadającego mu wyrażenia THEN.

Jeśli nie jest spełniony żaden z warunków WHEN, to jest przypisywana wartość domyślna określona w wyrażeniu ELSE. Jeśli nie podano wyrażenia ELSE, to jest przypisywana wartość NULL.

Proszę także się zapoznać z instrukcją Case (Switch).

Składnia:

CASE

WHEN warunek1_żądania THEN wyrażenie1

{WHEN warunek2_żądania THEN wyrażenie2}

{WHEN warunek_żądania... THEN wyrażenie...}

ELSE wyrażenie

END

Gdzie:

CASE

Początek instrukcji CASE. Po słowie kluczowym CASE musi występować jedna lub więcej instrukcji WHEN ... THEN, opcjonalna instrukcja ELSE oraz słowo kluczowe END.

WHEN

Określa warunek, który powinien zostać spełniony.

THEN

Określa wartość, którą należy przypisać, gdy będzie spełniony odpowiadający mu warunek WHEN.

ELSE

Określa wartość, którą należy przypisać, jeśli nie będzie spełniony żaden z warunków WHEN. Jeśli wyrażenie ELSE nie zostanie podane, to będzie domyślnie przyjęta instrukcja ELSE NULL.

END

Kończy instrukcję CASE.

Przykład

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogie'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Forma If instrukcji CASE, w przeciwieństwie do formy Switch, zezwala na stosowanie operatorów porównania w warunkach WHEN; warunek WHEN w postaci

WHEN < 0 THEN 'Under Par'

jest dozwolony.


Opublikowano: Wrzesień 2017 Copyright © 2005, 2017, Oracle. Wszelkie prawa zastrzeżone. Legal Notices.