SQL Server 2012 Så här använder du VÄLJ () Logisk funktion

SQL Server 2012 introducerade den kraftfulla nya CHOOSE () -funktionen. Detta tekniska recept kommer att undersöka användningen och vanliga misstag genom några enkla exempel.

Funktionen VÄLJ () returnerar objektet till ett angivet index. Beteendet är detsamma som listan över objekt i array och använder arrayindex för att få objektet på angivet index.

Syntax

Syntax: VÄLJ (index, val_1, val_2 [, val_n])


Index argument accepterar heltal uttryck, och det måste börja med 1-baserade index.
Val_1 till val_n Lista av föremål.

exempel

Exempel 1.1 - CHOOSE () med index

VÄLJ VÄLJ (0, 'tech', 'recept', 'cookbook') AS 'index_as_0' GO index_as_0 ---------- NULL


Detta visar NULL eftersom VÄLJ () accepterar indexargument och måste börja med ett eller ett värde som är större än ett.

Exempel 1.2 - VÄLJ () med giltigt indexvärde

VÄLJ VÄLJ (1, 'tech', 'recept', 'cookbook') AS 'index_as_1' GO index_as_1 ---------- tech


Detta returnerar "tech" -objektet som resultat från värdeslistan eftersom vi har passerat ett som indexargument.

Exempel 1.3 - VÄLJ () med index större än antal objekt i listan

VÄLJ VÄLJ (4, 'tech', 'recept', 'cookbook') AS 'index_as_4' GO index_as_4 ---------- NULL


Detta returnerar NULL eftersom vi passerar indexargument som fyra, och vi har inga objekt i fjärde positionen.

Exempel 1.4 - VÄLJ () med decimalindex

VÄLJ VÄLJ (2,9, 'tech', 'recept', 'cookbook') AS 'decimal_index' GO decimal_index ------------- recept


Detta returnerar inte något fel. Det visar "recept" i resultat. När du passerar det första argumentet som 2.9 omvandlar det ett decimalvärde till ett heltal, behandlar decimaltalet 2.9 som 2 och visar resultatet "recept" som resultat.

Exempel 1.5 VÄLJ () med negativt index

VÄLJ VÄLJ (-2, 'tech', 'recept', 'cookbook') AS 'Negative_index' GO Negative_index -------------- NULL


Detta resulterar i NULL eftersom du passerar det första argumentet som ett negativt värde som bryter mot syntaxen. Se alltid till att du alltid passerar det positiva heltalet.

Exempel 1.6 VÄLJ () med variabel

DECLARE @index AS INT = 3 VÄLJ VÄLJ (@index, 'tech', 'recept', 'cookbook') AS 'Index_as_Variable' GO Index_as_Variable ----------------- cookbook


Vi har förklarat en int variabel @ index med värde tre och har passerat variabeln som indexvärde. Det visar "cookbook" eftersom det är det tredje indexet i listan.