【SQL】SQL CHOOSE用法

在 SQL Server 中,CHOOSE 函數是一個很有用的函數,它從一組值中返回基於索引值的值。這個函數的語法和用法如下:

語法

CHOOSE ( index, val_1, val_2 [, …n ] )

  • index:一個整數表達式,決定從列表中返回哪一個值。如果 index 是 1,則返回 val_1,如果 index 是 2,則返回 val_2,依此類推。
  • val_1, val_2, ... n:一組值,可以是任何類型,但應該是相同類型或可隱式轉換為相同類型。

範例

  1. 簡單範例

SELECT CHOOSE(2, ‘Red’, ‘Green’, ‘Blue’) AS ChosenColor;

這個查詢會返回 Green,因為索引值是 2。

  1. 使用在查詢中

假設有一個名為 Products 的表,包含 ProductIDCategoryID,我們想根據 CategoryID 返回對應的類別名稱:

SELECT ProductID,
CategoryID,
CHOOSE(CategoryID, ‘Electronics’, ‘Clothing’, ‘Toys’) AS CategoryName
FROM Products;

在這裡,CategoryID 為 1 的產品將顯示 ElectronicsCategoryID 為 2 的產品將顯示 Clothing,依此類推。

  1. 使用在 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 函數的基本用法及其在不同情況下的應用。


探索更多來自 宸宸知識庫 的內容

訂閱後即可透過電子郵件收到最新文章。

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *