Funcții logice – IIF (Transact-SQL)

Configurare noua (How To)

Situatie

Returnează una din cele două valori, în funcție de faptul dacă expresia booleană se evaluează la adevărat sau fals în SQL Server.

Solutie

Sintaxa:

IIF ( boolean_expression, true_value, false_value )

Argumente

boolean_expression
O expresie booleană validă.

Dacă acest argument nu este o expresie booleană, atunci o eroare de sintaxă este ridicată.

true_value
Valoare pentru a reveni în cazul în care boolean_expression evaluează la true.

false_value
Valoare pentru a reveni în cazul în care boolean_expression evaluează la fals.

Tipuri de returnare

Returnează tipul de date cu cea mai mare prioritate de tipurile din true_value și false_value . Pentru mai multe informații, consultați Tip de date precedentei (Transact-SQL) .

Comentarii

IIF este o prescurtare pentru scrierea unei expresii CASE. Se evaluează expresia booleană a trecut ca primul argument, și apoi se întoarce oricare dintre celelalte două argumente bazate pe rezultatul evaluării. Aceasta este, true_value este returnat în cazul în care expresia booleană este adevărată, iar false_value este returnat în cazul în care expresia booleană este falsă sau necunoscută. true_value și false_value pot fi de orice tip. Aceleași reguli care se aplică expresia CASE pentru expresii booleene, manipulare nulă, și tipuri de returnare se aplică , de asemenea , IIF. Pentru mai multe informații, consultați CASE (Transact-SQL) .

Faptul că IIF este tradus în caz are, de asemenea, un impact asupra altor aspecte ale comportamentului acestei funcții. Deoarece expresiile CASE pot fi imbricate numai până la nivelul de 10, declarațiile IIF pot fi imbricate numai până la nivelul maxim de 10. De asemenea, IIF este remoted la alte servere ca expresie CASE semantically echivalent, cu toate comportamentele unui expresia CASE remoted.

Exemple

DECLARE @a int = 45, @b int = 40;
SELECT IIF ( @a > @b, ‘TRUE’, ‘FALSE’ ) AS Result;

Tip solutie

Permanent

Voteaza

(14 din 36 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?