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
广告