在 SQL Server 中,CHOOSE
函數是一個很有用的函數,它從一組值中返回基於索引值的值。這個函數的語法和用法如下:
語法
CHOOSE ( index, val_1, val_2 [, …n ] )
index
:一個整數表達式,決定從列表中返回哪一個值。如果index
是 1,則返回val_1
,如果index
是 2,則返回val_2
,依此類推。val_1, val_2, ... n
:一組值,可以是任何類型,但應該是相同類型或可隱式轉換為相同類型。
範例
- 簡單範例
SELECT CHOOSE(2, ‘Red’, ‘Green’, ‘Blue’) AS ChosenColor;
這個查詢會返回 Green
,因為索引值是 2。
- 使用在查詢中
假設有一個名為 Products
的表,包含 ProductID
和 CategoryID
,我們想根據 CategoryID
返回對應的類別名稱:
SELECT ProductID,
CategoryID,
CHOOSE(CategoryID, ‘Electronics’, ‘Clothing’, ‘Toys’) AS CategoryName
FROM Products;
在這裡,CategoryID
為 1 的產品將顯示 Electronics
,CategoryID
為 2 的產品將顯示 Clothing
,依此類推。
- 使用在 CASE 語句中
雖然 CHOOSE
非常方便,但在一些情況下,可能會更常用 CASE
語句來實現相同的功能,特別是當索引不是連續的或需要更多的條件時。
SELECT ProductID,
CategoryID,
CASE
WHEN CategoryID = 1 THEN ‘Electronics’
WHEN CategoryID = 2 THEN ‘Clothing’
WHEN CategoryID = 3 THEN ‘Toys’
ELSE ‘Other’
END AS CategoryName
FROM Products;
注意事項
CHOOSE
函數在索引值超出範圍時返回NULL
。CHOOSE
函數只在 SQL Server 2012 及其之後的版本中可用。CHOOSE
函數的優點是語法簡潔,但在需要更複雜邏輯或索引值不連續的情況下,CASE
語句可能更靈活。
透過以上範例和說明,你應該能夠理解 CHOOSE
函數的基本用法及其在不同情況下的應用。
探索更多來自 宸宸知識庫 的內容
訂閱後即可透過電子郵件收到最新文章。