SELECT
描述
从工作簿范围、定义的名称或 Workday 报告中选择数据。SELECT 函数类似于 SQL SELECT 语句。编写 SELECT 语句的主要规则如下:您在 SELECT 语句中引用的数据必须具有标题名称。请在 SELECT 语句两侧加上双引号。用单引号将字符串括起来。如果引用的列标题或表格名称包含空格或特殊字符,请在该标题或名称两侧加上反引号。对参数使用问号。如果 SELECT 公式未在 30 分钟内完成计算,它会返回 #ERROR。SELECT 最多可以处理 500 万行,但由于 SELECT 会执行聚合操作,处理的行数可能不会与可返回的行数完全匹配。要查看 SELECT 函数的实际示例,请在 Community 中查找“Worksheets Function Example Workbooks”(Worksheets 函数示例工作簿)页面,或将以下链接粘贴到浏览器中:https://community.workday.com/node/408872。
请注意,SELECT 函数并非用于替代数据向导。
语法
SELECT(
select_statement
, [ parameter
], ...) - select_statement:SELECT 语句。该语句类似于 SQL SELECT 语句。请在 SELECT 语句两侧加上双引号。基本格式为:"SELECT column1, [column2], ... FROM table"其中column是要返回的数据,table是要从中选择数据源的数据源。您可以在 SELECT 语句中嵌入函数,例如 COUNT、AVG、SUM、LIMIT 等。下文列出了 SELECT 支持的所有函数。在 SELECT 公式中对日期值执行运算时,请注意,Worksheets 的工作方式与 SQL 语法不同。Worksheets 计算将日期视为序列号。示例:日期 2023 年 3 月 20 日表示为序列号 45005。此外,SQL 会自动转换字符串日期以进行计算,但 Worksheets 不会。由于 from 和 where 是 SQL 中的保留字,因此,如果列名称中存在字符串from或where,则必须在这些字符串两侧加上引号。在语句的 FROM 子句中,您可以使用以下值:
- Workday 报告
- 您指定为实参的参数
- parameter:语句参数。
示例
我们将使用下表说明一些简单的示例:
header1 | header2 | header3 |
|---|---|---|
1 | a | red |
2 | b | orange |
3 | c | orange |
4 | d | red |
5 | e | red |
公式:
=SELECT("SELECT header1,header3 FROM ?WHERE header3 = ?",A1:C6,"red")
其结果如下:
header1 | header3 |
|---|---|
1 | red |
4 | red |
5 | red |
自动重新计算与参数
。我们建议使用此函数的参数来引用数据;Worksheets 会将这些引用视为数据依赖关系,因此当您更改所引用单元格中的数据时,SELECT 公式会自动运行。如果改用 SELECT 语句来引用数据,则当数据发生变更时,此公式不会自动重新运行,而且即使选择“数据” > “重新计算”,也不会导致此公式重新运行。在以下公式中,我们使用参数来引用数据。如果 A1:C6 范围内的数据发生变更,Worksheets 会自动重新计算并更新结果:
=SELECT("SELECT header1,header3 FROM ?",A1:C6)
定义的名称
。在此示例中,为某个区域指定了定义的名称 all_employees:- =SELECT("SELECT employeeName FROM ?", all_employees)
列、行或范围
。您可以引用同一工作表、其他工作表或其他工作簿中的列、行或区域。如果您未指定工作表,则引用范围只能局限于当前工作表。- =SELECT("SELECT employeeName FROM ?",$A:$G)
- =SELECT("SELECT employeeName FROM ?",'All Employees Sheet'!$A:$G)
- =SELECT("SELECT employeeName FROM ?",All_Employees_Sheet!$A:$G)
- =SELECT("SELECT employeeName FROM ?", !'Other Workbook Name'!'All Employees Sheet'!A:G)
更多示例和结果
公式 | 结果 |
|---|---|
SELECT("SELECT employeeID, employeeName FROM ?”, AllEmployeesSheet!$A:$G) | 从名为 AllEmployeesSheet 的工作表的 A 到 G 列中,返回 employeeID 和 employeeName。 |
SELECT("SELECT COUNT(employeeLastName) FROM ?”, AllEmployeesSheet) | 返回名为 AllEmployeesSheet 的工作表的 employeeLastName 列中的行数。 |
SELECT("SELECT employeeFirstName, employeeLastName, employeeRating FROM ?ORDER BY employeeRating DESC LIMIT 3", AllEmployeesSheet!$A:$G) | 返回评级排名前三的员工的名字、姓氏和评级。 |
Workday 报告
。从 Workday 报告中查询数据。- =SELECT("SELECT employeeName FROM WorkdayReports.AllEmployees"),其中报告名称为 AllEmployees。
- =SELECT("SELECT employeeName FROM WorkdayReports.`All Employees`"),其中报告名称为 All Employees。
- =SELECT("SELECT * from WorkdayReports.`All Employees`") 将选择报告中的所有行。
注释
- 我们建议使用函数的参数部分来引用数据; Worksheets 会将这些引用视为数据依赖关系,因此只要您选择,SELECT 公式就会运行。您在公式的 SELECT 语句部分中引用的数据不会被视为依赖数据,因此,即使基础数据已更改,选择也不会导致公式重新运行。
- 此函数专用于数组公式。
SELECT 函数:常量
TRUE | CURRENT_DATE |
FALSE | CURRENT_TIME |
NULL | CURRENT_TIMESTAMP |
SELECT 函数:运算符与逻辑
UNION | JOIN | INTERSECT | INNER JOIN |
UNION ALL | LEFT JOIN | EXCEPT | BETWEEN |
NOT BETWEEN | IN | * | <= |
|| (字符串连接) | NOT IN | / | <> |
%(模数) | ()(圆括号) | + | != |
<<(左移 位) | IF | -(减号) | >= |
>>(按位右移) | +(一元正数) | -(一元负数) | ~(位反转) |
EXISTS | ! (逻辑非) | | | LIKE |
NOT EXISTS | NOT | < | NOT LIKE |
IS NULL | AND | > | CASE 1
|
IS NOT NULL | OR | = | & |
IFNULL | ISNULL | POW | " |
1
包括 WHEN THEN ELSE END 关键字SELECT 函数:标量、子字符串
DAYOFMONTH | YEAR | LOWER | UPPER |
HOUROFDAY | COALESCE | LTRIM | DATE Y M D |
MINUTE | NULLIF | RTRIM | DATETIME Y M D H M S |
MONTH | ROUND | SUBSTRING | INSTANCE(编号和描述) |
SECOND | LENGTH | TRIM | DATEDIF |
REPLICATE | STUFF | LOCATE | INSTR |
SELECT 函数:数学、财务、统计
ABS | COUNT | LOG10 | Q(季度) |
AVG | FLOOR | MAX | SQRT |
CEIL | LOG | MIN | SUM |
LIMIT | ASC | DESC |