Bagikan melalui


Fungsi Logis - CHOOSE (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Mengembalikan item pada indeks yang ditentukan dari daftar nilai di SQL Server.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

index

Adalah ekspresi bilangan bulat yang mewakili indeks berbasis 1 ke dalam daftar item yang mengikutinya.

Jika nilai indeks yang disediakan memiliki jenis data numerik selain int, maka nilai secara implisit dikonversi menjadi bilangan bulat. Jika nilai indeks melebihi batas array nilai, maka CHOOSE mengembalikan null.

val_1 ... val_n

Daftar nilai yang dipisahkan koma dari jenis data apa pun.

Jenis Kembalian

Mengembalikan tipe data dengan prioritas tertinggi dari kumpulan jenis yang diteruskan ke fungsi. Untuk informasi selengkapnya, lihat Prioritas Tipe Data (Transact-SQL).

Keterangan

CHOOSE bertindak seperti indeks ke dalam array, di mana array terdiri dari argumen yang mengikuti argumen indeks. Argumen indeks menentukan nilai mana yang akan dikembalikan.

Contoh

J. Contoh CHOOSE sederhana

Contoh berikut mengembalikan item ketiga dari daftar nilai yang disediakan.

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

Berikut set hasilnya.

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

B. Contoh CHOOSE sederhana berdasarkan kolom

Contoh berikut mengembalikan string karakter sederhana berdasarkan nilai di ProductCategoryID kolom .

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

Berikut set hasilnya.

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

C. PILIH dalam kombinasi dengan BULAN

Contoh berikut mengembalikan musim di mana model produk terakhir diubah. Fungsi MONTH ini digunakan untuk mengembalikan nilai bulan dari kolom ModifiedDate. Fungsi CHOOSE ini digunakan untuk menetapkan musim Belahan Bumi Utara. Sampel ini menggunakan AdventureWorksLT database, yang dapat dengan cepat diinstal sebagai database sampel untuk Azure SQL Database baru. Untuk informasi selengkapnya, lihat Database sampel AdventureWorks.

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;  

Berikut set hasilnya.

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)

Langkah berikutnya