SQL CHOOSE() 函数
SQL CHOOSE() 函数用于从值列表中检索项目(或值)。它接受两个参数 index 和 values列表(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 |
+-------+
示例
如果我们将 index 参数的值设为 零 传递给函数,则该函数会返回一个 NULL 值。
在这个程序中,我们将 index 参数的值设置为 零(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 |
+----+----------+---------------+