Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So finden Sie ein Listenelement an einer bestimmten Position in SQL Server

Ab SQL Server 2012 können Sie T-SQL CHOOSE() verwenden Funktion, um ein Listenelement an einer bestimmten Indexposition innerhalb einer Liste zu finden.

Die Syntax lautet wie folgt:

CHOOSE ( index, val_1, val_2 [, val_n ] )

Wobei index ist eine Ganzzahl, die die Position innerhalb der Liste darstellt, die Sie zurückgeben möchten.

Beispiel

Hier ist ein Beispiel:

SELECT CHOOSE(3, 'Marge', 'Homer', 'Bart') AS 'Who is at 3?';

Ergebnis:

Who is at 3?
------------
Bart        

In diesem Fall möchten wir das Element an Position 3 finden. Das Element an Position 3 ist Bart .

Ein Datenbankbeispiel

Hier ist ein Beispiel, in dem ich eine GenreId abgleiche Spalte mit einer Liste von Genres:

SELECT 
    GenreId, 
    CHOOSE(GenreId, 'Rock', 'Jazz', 'Country') AS Genre 
FROM Genres;

Ergebnis:

GenreId  Genre  
-------  -------
1        Rock   
2        Jazz   
3        Country
4        null   
5        null   
6        null   
7        null   
8        null   

Beachten Sie, dass in diesem Fall null -Werte werden zurückgegeben, da mehr Ergebnisse vorhanden waren, als als Argument angegeben wurden.