SQL - CHOOSE() 函式



SQL 的CHOOSE()函式用於從值列表中檢索專案(或值)。它接受兩個引數索引值列表(val1、val2、...valn),並在 SQL 伺服器中返回值列表中指定索引處的專案(或值)。

注意 - 值列表從索引值1開始;如果索引值為,則CHOOSE()函式返回NULL

語法

以下是 SQL CHOOSE()函式的語法 -

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

引數

  • index - 它是一個整數值,指定列表中的索引值。

  • val_1 ... val_n - 它是任何資料型別的逗號分隔值列表。

返回值

此函式返回指定索引值處列表中的一個專案。

示例

在下面的示例中,我們使用 SQL CHOOSE()函式從當前值列表'Java'、'SQL'、'MySQL'、'JavaScript'中檢索指定索引 2處的專案(或值)。

SELECT CHOOSE ( 2, 'Java', 'SQL', 'MySQL', 'JavaScript') AS Item;

輸出

執行上述程式後,將產生以下輸出 -

+-------+
| Item  |
+-------+
| SQL   |
+-------+

示例

您還可以將數值列表傳遞給 SQL CHOOSE() 函式。

以下是 SQL CHOOSE()函式的另一個示例,用於從當前數字列表'100、200、300、4000、500'中檢索指定索引(或位置)4處的專案(或值)。

SELECT CHOOSE ( 4, 100, 200, 300, 400, 500) AS Item;

輸出

以下是上述語句的輸出 -

+-------+
| Item  |
+-------+
| 400   |
+-------+

示例

如果我們將索引引數值作為傳遞給函式,則此函式返回NULL值。

在此程式中,我們將索引引數值作為零(0)傳遞給 SQL CHOOSE()函式。然後,使用此函式,我們嘗試從當前列表('Mango'、'Banana'、'Apple'、'Orange')中檢索指定索引 0處的專案(或值)。

SELECT CHOOSE ( 0, 'Mango', 'Banana', 'Apple', 'Orange') AS Item;

輸出

上述 SQL 語句產生以下輸出 -

+-------+
| Item  |
+-------+
| NULL  |
+-------+

示例

如果我們將空列表(‘’)傳遞給CHOOSE()函式,則此函式對於索引 1返回值,對於其餘所有索引返回NULL值。

SELECT CHOOSE ( 1, '') AS Item;
SELECT CHOOSE ( 2, '') AS Item;

輸出

執行上述查詢後,將產生以下輸出 -

+-------+
| Item  |
+-------+
|       |
+-------+
+-------+
| Item  |
+-------+
| NULL  |
+-------+

示例

如果當前列表為NULL,則CHOOSE()函式返回NULL

SELECT CHOOSE ( 1, NULL) AS Item;

輸出

以下是上述查詢的輸出 -

+-------+
| Item  |
+-------+
| NULL  |
+-------+

示例

您還可以將表列作為引數傳遞給 SQL CHOOSE()函式,以從列的內容中檢索專案(或值)。假設我們使用以下CREATE語句建立了一個名為Customer的表 -

CREATE TABLE CUSTOMERS(    
ID INT NOT NULL,    
NAME VARCHAR (20) NOT NULL,    
AGE INT NOT NULL,    
ADDRESS CHAR (25) ,    
SALARY DECIMAL (18, 2));

現在,讓我們使用如下所示的INSERT語句將一些記錄插入Customers表中 -

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );

以下 SQL 查詢從Customers表中Salary列的內容中檢索專案(或值) -

SELECT ID, NAME, CHOOSE(1, SALARY) AS CUST_SALARY FROM CUSTOMERS;

輸出

上述 SQL 查詢生成以下輸出 -

+----+----------+---------------+
| ID | NAME     | CUST_SALARY   |
+----+----------+---------------+
|  1 | Ramesh   | 2000.00       |
|  2 | Khilan   | 1500.00       |
|  3 | kaushik  | 2000.00       |
|  4 | Chaitali | 6500.00       |
+----+----------+---------------+
sql-logical-funtions.htm
廣告