SQL Server 2012 bevezetett egy új beépített logikai funkció SQL IIF. Ez egy rövidített formában írásban esetben nyilatkozat logika, vagy ha-ELSE logika.

az SQL-ben az esettanulmányt a korábbi cikkemben vizsgáltuk meg. Egy esettanulmányt használunk az eredmény visszaküldéséhez a meghatározott feltétel alapján. Hasonló az IF-hez..ELSE … ezután a statement kiértékel egy kifejezést és visszaadja a kimenetet. Az esettanulmány az SQL Server szinte minden verziójában elérhető.

fedezzük fel ezt az SQL IIF funkciót ebben a cikkben.,

SQL HA a Nyilatkozatot áttekintés

Mi a következő formátumot kell használni, hogy írjon az Esetben kijelentés logika SQL lekérdezések

SELECT CASE Kifejezés, Ha kifejezés1 Akkor Result1, Amikor kifejezés2 Akkor Result2 … MÁS Eredmény VÉGE

Tudjuk írni ezt a kódot használja az SQL HA a nyilatkozatot a szintaxis, mint a következő.

IIF(boolean_expression, true_value, false_value)

  • Boolean_expression: az SQL IIF utasítás első paramétere egy logikai kifejezés., Kell egy érvényes logikai kifejezés mást kapunk egy kivétel
  • True_Value: Ha a boolean_expression IGAZ, visszatér megadott értéket a true_value paraméter
  • False_Value: Ha a boolean_expression HAMIS, a függvény a megadott értéket a false_value paraméter

fedezzük fel SQL HA a nyilatkozatot példákon keresztül.

1. példa: SQL IIF utasítás a

egész értékek összehasonlítására a következő példában a megadott logikai kifejezés hamis ( 2>3 nem igaz)., Due to this, it returns the value specified in the false_value parameter.

1
SELECT IIF(2 > 3, ‘TRUE’, ‘FALSE’ )

Similarly, if the condition is TRUE (5>3 is TRUE) so it returns the value of true_value parameter.,

1
SELECT IIF(5 > 3, ‘TRUE’, ‘FALSE’ )

Example 2: SQL IIF statement with variables

In the following example, we specified two integer variables and assigned values. We use variables for comparison in the IIF statement.,

1
2

DECLARE @A INT = 80, @B INT = 70
SELECT IIF(@A >= @B, ‘PASS’, ‘FAIL’ )

The specified condition (80>70) is TRUE, so it returns the value PASS.,

3. példa: SQL IIF utasítás két

karakterlánc összehasonlításához a következő példában az SQL IIF utasítás segítségével szeretnénk összehasonlítani a karakterláncadatokat. Szeretnénk tudni, hogy a személy tetszik alapján a személy nevét.,

1
2

DECLARE @Person Varchar(100) = ‘Raj’
SELECT IIF(@Person=’Raj’,’Likes Apple’,’NA’)

We can specify multiple conditions in SQL IIF statement as well.,i>

  • Else all other persons like orange
  • 1
    2

    DECLARE @Person Varchar(100) = ‘Raj’
    SELECT IIF(@Person in(‘Raj’, ‘Mohan’),’Likes Apple’,’Likes Orange’)

    The query should return Likes Orange if the person name is not in the IN clause., A következő példában a person Vinay nem létezik a @Person változóban, így hamis záradék értékét adja vissza.

    4. Példa: Beágyazott SQL HA a nyilatkozatot

    használhatjuk Beágyazott SQL HA nyilatkozatát is adja meg, több feltételek

    ebben Az SQL HA a funkció ellenőrzi, az első feltétel, valamint ha a feltétel IGAZ, akkor a függvény értéke. A mi esetünkben ez hamis (személy Vinay nem egyezik Raj). ellenőrzi a másik feltétel visszatér eredményeket, ha ez igaz.,

    Ha egyik feltétel sem igaz, visszaadja az alapértelmezett hamis üzenetet.

    5. példa: SQL IIF utasítás

    táblázatoszloppal az előző példákban vagy közvetlenül az IIF nyilatkozatban vagy a megadott változókban adjuk meg az értékeket. Általában azt akarjuk használni a meglévő adatokkal egy SQL táblázatban. Az IIF-nyilatkozatot táblázatoszloppal is használhatjuk.,

    a következő példában szeretnénk megismerni a beszállító nevét a WideWorldImporters adatbázisban található PurchaseOrders táblából.

    Ha a beszállítói név nem létezik egy adott beszállítói azonosítóhoz, akkor a megadott hamis értéket adja vissza az SQL IIF nyilatkozatban.

    6. Példa: az SQL HA a nyilatkozatot a táblázat oszlop, valamint összesített funkció

    7. Példa: az SQL HA nyilatkozatot, valamint az adatok típus elsőbbséget

    lehet, hogy a különböző adattípusok számára az eredményeket., Ha az eredményfeltételekben különböző adattípusok vannak megadva, az SQL Server adja a legmagasabb elsőbbségi adattípust. A következő példában a hamis állapot (11>19) esetén az eredmény a false_value argumentum lesz, azaz 100. E egész adat típusúnak kell lennie, de a kimenetet 40.0 kapjuk, mert a másik argumentum float (2.6) nagy elsőbbséget élvez, mint egy egész szám.,

    1
    SELECT IIF(11 > 19, 2.6, 40)

    You can check the data type precedence in the following image

    Example 8: SQL IIF with NULL values

    We should be careful in NULL values inside the SQL IIF function.,

    1
    2
    3

    SELECT
    IIF(100 > 99, NULL, NULL) AS Result;

    We cannot specify NULL in both the true and false arguments. We get the following error message.,

    Msg 8133, 16.szint, 1. állapot, 1. sor az EREDMÉNYKIFEJEZÉSEK legalább egyikének az ESETLEÍRÁSBAN A NULL állandótól eltérő kifejezésnek kell lennie.

    a hibaüzenetben láthatja, hogy információkat ad az ESET specifikációjáról, bár az SQL IIF funkciót használtuk. Ezt a következő példában fogjuk megvizsgálni.

    meg kell adnia legalább egy igaz vagy hamis argumentumot.,

    1
    2

    SELECT
    IIF(100 > 99, ‘Hello’, NULL) AS Result;

    The similarity between SQL IIF statement and CASE Statement

    In the introduction of SQL IIF Statement, we mentioned that it is a shorthand form of writing CASE statement logic or IF-ELSE logic., Igen, ez igaz. Belsőleg SQL Server átalakítja a nyilatkozatot a CASE utasítás végrehajtja. A lekérdezés tényleges végrehajtási tervével ellenőrizhetjük.

    hajtsa végre a lekérdezést a 6. példából egy tényleges végrehajtási tervvel.

    a tényleges végrehajtási tervben nézze meg a számítási skalár tulajdonságait. Láthatja, hogy belsőleg végrehajtja az esettanulmányt.

    következtetés

    ebben a cikkben feltártuk az SQL IIF nyilatkozatot, amely az esettanulmányhoz kapcsolódó feltételek írásának új módja., Az SQL 2012-től elérhető. Meg kell felfedezni ezt, hogy ismeri ezt. Ha bármilyen észrevétele vagy kérdése van, nyugodtan hagyja őket az alábbi megjegyzésekben.,

    • Szerző
    • Utolsó Hozzászólás
    Mint egy MCSA tanúsított a Microsoft Certified Edző Gurgaon, India, 13 éves tapasztalat, Rajendra működik, hogy a különböző nagyvállalatok összpontosítva teljesítmény optimalizálás, monitoring, magas rendelkezésre állás, valamint katasztrófa-helyreállítási stratégiák megvalósítását., Több száz hiteles cikk szerzője az SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git és kapcsolódó technológiák területén, amelyeket eddig több mint 10m olvasó nézett meg.
    ő az alkotója az egyik legnagyobb ingyenes online gyűjtemények cikkek egyetlen témában, az ő 50 részes sorozat SQL Server mindig rendelkezésre álló csoportok. Az SQL Server közösséghez való hozzájárulása alapján 2020-ban és 2021-ben az SQLShack-en folyamatosan elismerték különböző díjakkal, köztük a rangos “az év legjobb szerzőjével”.,
    Raj mindig érdekli az új kihívásokat, így ha segítségre van szüksége az írásaiban szereplő bármely témában, akkor rajendra-ban érhető el.gupta16@gmail.,com
    összes Megtekintése hozzászólások Rajendra Gupta

    Legújabb hozzászólások Rajendra Gupta (minden)
    • Végrehajtása kisebb-nagyobb verzió frissítéseket AWS RDS SQL Server – január 29, 2021
    • Bevetni AWS RDS PostgreSQL esetekben – január 27, 2021
    • Vándorolnak az intézményi SQL adatbázisok, hogy AWS RDS SQL Server segítségével AWS DMS – január 25, 2021

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük