Aracılığıyla paylaş


Mantıksal Fonksiyonlar - SELECT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

SQL Server'daki değerler listesinden belirtilen indeksteki öğeyi döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

dizin

Bir tam sayı ifadesidir ve ardından gelen öğeler listesine 1 tabanlı bir indeks eklenmiştir.

Eğer verilen indeks değeri int'den farklı bir sayısal veri türüne sahipse, değer örtük olarak tam sayıya dönüştürülür. Eğer indeks değeri değer dizisi sınırlarını aşarsa, SELECT null döner.

val_1 ... val_n

Herhangi bir veri türünden virgülle ayrılmış değerlerin listesi.

Dönüş Türleri

Fonksiyona aktarılan tipler kümesinden en yüksek önceliğe sahip veri tipini döndürür. Daha fazla bilgi için bkz. Veri Türü Önceliği (Transact-SQL).

Açıklamalar

CHOOSE, dizinin dizinin ardındaki argümanlardan oluştuğu bir dizinin içine bir indeks gibi davranır. İndeks argümanı, aşağıdaki değerlerden hangisinin geri döneceğini belirler.

Örnekler

A. Basit SELECT örneği

Aşağıdaki örnek, verilen değerler listesinden üçüncü öğeyi geri getirir.

SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;  

Sonuç kümesi aşağıdadır.

Result  
-------------  
Developer  
  
(1 row(s) affected)  

B. Sütuna dayalı basit SELECT örneği

Aşağıdaki örnek, sütundaki ProductCategoryID değere dayalı basit bir karakter dizisi döndürür.

USE AdventureWorks2022;  
GO  
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1  
FROM Production.ProductCategory;  

Sonuç kümesi aşağıdadır.

ProductCategoryID Expression1  
----------------- -----------  
3                 C  
1                 A  
2                 B  
4                 D  
  
(4 row(s) affected)  
  

C. AY ile birlikte SELECT

Aşağıdaki örnek, bir ürün modelinin en son değiştirildiği sezonu geri getirir. Fonksiyon, MONTH sütundan ModifiedDateay değerini döndürmek için kullanılır. Bu CHOOSE fonksiyon, Kuzey Yarımküre mevsimini atamak için kullanılır. Bu örnek, yeni bir Azure SQL Veritabanı için örnek veritabanı olarak hızlıca kurulabilen veritabanını AdventureWorksLT kullanır. Daha fazla bilgi için bkz. AdventureWorks örnek veritabanları.

SELECT Name, ModifiedDate, 
CHOOSE(MONTH(ModifiedDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                          'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Modified
FROM SalesLT.ProductModel AS PM
WHERE Name LIKE '%Frame%'
ORDER BY ModifiedDate;  

Sonuç kümesi aşağıdadır.

Name                        ModifiedDate            Quarter_Modified
--------------------------- ----------------------- ----------------
HL Road Frame               2002-05-02 00:00:00.000 Spring
HL Mountain Frame           2005-06-01 00:00:00.000 Summer
LL Road Frame               2005-06-01 00:00:00.000 Summer
ML Road Frame               2005-06-01 00:00:00.000 Summer
ML Road Frame-W             2006-06-01 00:00:00.000 Summer
ML Mountain Frame           2006-06-01 00:00:00.000 Summer
ML Mountain Frame-W         2006-06-01 00:00:00.000 Summer
LL Mountain Frame           2006-11-20 09:56:38.273 Autumn
HL Touring Frame            2009-05-16 16:34:28.980 Spring
LL Touring Frame            2009-05-16 16:34:28.980 Spring

(10 rows affected)

Sonraki Adımlar