SQL Server (Transact-SQL) CHOOSE() 函数返回列表的第 Nth 个元素项目:val1(如果N = 1),val2(如果N = 2),依此类推。如果 N 小于 1 或大于指定为参数的项目数,则返回 NULL。
语法
CHOOSE(N, val1, val2, val3,...)
参数
N | 必填。 指定索引号。 |
val1, val2, val3,... | 必填。 指定项目列表。 |
返回值
返回列表第N个项目元素。
示例 1:
下面的示例显示了CHOOSE()函数的用法。
SELECT CHOOSE(1, 'Learning', 'SQL Server', 'is', 'fun');
Result: 'Learning'
SELECT CHOOSE(2, 'Learning', 'SQL Server', 'is', 'fun');
Result: 'SQL Server'
SELECT CHOOSE(5, 'Learning', 'SQL Server', 'is', 'fun');
Result: NULL
SELECT CHOOSE(0, 'Learning', 'SQL Server', 'is', 'fun');
Result: NULL
SELECT CHOOSE(4, 'Learning', 'SQL Server', 'is', 'fun');
Result: 'fun'
SELECT CHOOSE(3, 10, 20, 30, '40');
Result: 30
示例 2:
考虑一个名为 EmployeeLogin 的数据库表,其中包含以下记录:
EmpID | Name | Date | LoginTime |
---|---|---|---|
1 | John | 2019-10-25 | 09:20:38 |
2 | Marry | 2019-10-25 | 09:21:05 |
3 | Jo | 2019-10-25 | 09:24:35 |
4 | Kim | 2019-10-25 | 09:25:24 |
5 | Ramesh | 2019-10-25 | 09:27:16 |
以下查询可用于从列记录指定的项目列表中获取第二个元素:
SELECT *,
CHOOSE(2, Name, Date, LoginTime) AS CHOOSE_Value
FROM EmployeeLogin;
这将产生类似于以下内容的结果:
EmpID | Name | Date | LoginTime | CHOOSE_Value |
---|---|---|---|---|
1 | John | 2019-10-25 | 09:20:38 | 2019-10-25 |
2 | Marry | 2019-10-25 | 09:21:05 | 2019-10-25 |
3 | Jo | 2019-10-25 | 09:24:35 | 2019-10-25 |
4 | Kim | 2019-10-25 | 09:25:24 | 2019-10-25 |
5 | Ramesh | 2019-10-25 | 09:27:16 | 2019-10-25 |
6 | Suresh | 2019-10-25 | 09:28:19 | 2019-10-25 |