caz de expresie (Transact-sql)

Expresia obținută prin utilizarea unui format simplu funcție CASE. Argumentul input_expression este orice expresie validă.

O expresie simplă, care este comparat cu un argument input_expression format simplu funcție CASE. Argumentul when_expression este orice expresie validă. tipuri de date argument input_expression și fiecare dintre expresiile when_expression ar trebui să fie aceeași sau implicit acționat unul cu altul.

Expresia returnată dacă input_expression și when_expression expresii compararea rezultatelor într-o expresie TRUE sau Boolean_expression evaluează la TRUE. expresie rezultat Argumentul este orice expresie validă.

Această expresie este returnată dacă nici una dintre comparații nu duce la TRUE. Dacă acest argument este omis, și nici unul dintre comparațiile nu duce la TRUE, CASE returnează NULL. Argumentul else_result_expression este orice expresie validă. Tipuri de else_result_expression argument de date și oricare dintre argumente result_expression trebuie să fie aceeași sau implicit acționat unul cu altul.

Aceasta este o expresie logică obținută prin utilizarea formatului CASE funcție de căutare. Boolean_expression argument reprezintă orice expresie booleană validă.

Se întoarce o expresie a cea mai mare prioritate din setul de expresii și un result_expressions expresie opțional else_result_expression. Pentru mai multe informații, consultați. Tipuri de date precedentei (Transact-SQL).

valorile de returnare

O CASE expresie simplă:

Simpla expresie CASE compară o expresie cu prima expresie în fiecare clauză WHEN. În cazul în care aceste expresii sunt echivalente, expresia de întoarcere în clauza ATUNCI.

Permis de testare numai egalitate.

Estimează o input_expression expresie. apoi, în această ordine, și compară valorile input_expression when_expression expresii pentru fiecare clauză CÂND.

Returnează o result_expression expresie. care corespunde primei propuneri CÂND, pentru care operarea input_expression = comparație when_expression evaluează la TRUE.

Dacă nici unul dintre operațiunile input_expression = when_expression nu calculată în TRUE, componenta SQL Server Database Engine returnează un else_result_expression expresie. în cazul în care clauza este specificat altceva, sau NULL valoare, în cazul în care clauza else nu este specificată.

Caută CASE expresie:

Calculeaza în această expresie Boolean_expression pentru fiecare clauză CÂND.

Returnează o result_expression expresie. care corespunde primei teze a CÂND, pentru care expresia Boolean_expression este TRUE.

În cazul în care nici o expresie nu este evaluată în Boolean_expression TRUE, componenta Baza de date a motorului revine else_result_expression de expresie. în cazul în care clauza este specificat altceva, sau NULL valoare, în cazul în care clauza else nu este specificată.

SQL Server permite utilizarea unei expresii CASE nu sunt mai mult de 10 niveluri de cuibărit.

Expresia CASE nu pot fi utilizate pentru a controla fluxul de execuție Transact-SQL instrucțiuni, blocuri de instrucțiuni, funcții definite de utilizator și proceduri stocate. Listă de metode de control execuție vezi. Secțiunea Flow Limba de control (Transact-SQL).

Instrucțiuni CASE secvențial calculează condițiile și opri după prima condiție adevărată este detectată. În unele cazuri, expresia este evaluată înainte de instrucțiunea CASE pentru a obține un rezultat de expresie ca intrare. În calcularea acestor expresii sunt posibile erori. În primul rând, se calculează expresiile agregate sunt utilizate în cazul în care argumentele declarație, și declarația CASE apoi executat. De exemplu, următoarea interogare în formarea unei valori statistice care exprimă MAX va emite o divizie de eroare de la zero. Aceasta are loc chiar înainte de calcularea expresiei CASE.

articole similare