Cazul de expresie (transact-sql)

O expresie obținută utilizând un format CASE simplu. Argumentul input_expression este orice expresie validă.

O expresie simplă care compară argumentul de intrare_expresie atunci când se utilizează un format CASE simplu. Argumentul when_expression este orice expresie validă. Tipurile de date ale expresiei de intrare și ale fiecărei expresii when_expression trebuie să fie aceleași sau implicit menționate unul față de celălalt.

Expresia a revenit dacă compararea expresiilor input_expression și when_expression rezultă în expresia TRUE sau expresia Boolean_expression este evaluată la TRUE. Expresia expresiei rezultatului este orice expresie validă.

Această expresie este returnată dacă niciuna dintre operațiile de comparație nu are rezultate TRUE. Dacă acest argument este omis și niciuna dintre operațiile de comparație nu are TRUE, funcția CASE returnează NULL. Argumentul else_result_expression este orice expresie validă. Tipurile de date ale argumentului explicație else_result_expression și ale oricăror argumente de exprimație a rezultatelor trebuie să fie aceleași sau implicit menționate unul față de celălalt.

Aceasta este o expresie logică obținută utilizând formatul de căutare al funcției CASE. Argumentul Expresie Booleană este orice expresie logică valabilă.

Returnează expresia cu cea mai mare prioritate din setul de expresii result_expressions și expresia else_result_expression. Pentru mai multe informații, consultați Prioritatea tipului de date (Transact-SQL).

Valorile returnate

O simplă expresie CASE:

O simplă expresie CASE compară prima expresie cu expresia în fiecare clauză WHEN. Dacă aceste expresii sunt echivalente, atunci expresia din clauza THEN este returnată.

Este permisă doar o verificare a egalității.

Evaluează expresia input_expression. Apoi, în ordinea specificată, compară valorile expresiilor input_expression și when_expression pentru fiecare clauză WHEN.

Returnează expresia result_expression. corespunzătoare primei clauze WHEN, pentru care operația de comparație input_expression = when_expression este evaluată la TRUE.

Dacă niciuna dintre operațiunile de expunere_expresie_expresivă nu este evaluată la TRUE, SQL Server Database Engine returnează expresia else_result_expression. dacă este specificată clauza ELSE sau NULL dacă clauza ELSE nu este specificată.

Expresia de căutare CASE:

Calculează expresiile Boolean_expression pentru fiecare clauză WHEN în ordinea specificată.

Returnează expresia result_expression. corespunzătoare primei clauze WHEN, pentru care expresia Boolean_expression este TRUE.

Dacă nu este evaluată expresia Boolean la TRUE, motorul bazei de date returnează expresia else_result_expression. dacă este specificată clauza ELSE sau NULL dacă clauza ELSE nu este specificată.

SQL Server permite utilizarea a maximum 10 nivele de cuibare în expresiile CASE.

Instrucțiunea CASE nu poate fi utilizată pentru a controla fluxul de execuție al instrucțiunilor Transact-SQL, al blocurilor de instrucțiuni, al funcțiilor definite de utilizator și al procedurilor stocate. Pentru o listă de metode de control pentru executare, consultați Limbajul de control al contului (Transact-SQL).

Declarația CASE evaluează secvențial condițiile și se oprește după detectarea primei condiții de funcționare. În unele cazuri, expresia este evaluată înainte ca instrucțiunea CASE să primească rezultatele rezultatelor expresiei ca intrare. La calcularea unor astfel de expresii sunt posibile erori. Mai întâi, expresiile agregate care sunt utilizate în argumentele WHEN ale instrucțiunii CASE sunt evaluate și apoi execută instrucțiunea CASE. De exemplu, următoarea interogare la generarea valorii expresiei MAX va produce o eroare de divizare cu zero. Apare chiar înainte de evaluarea expresiei CASE.

Articole similare