跳至主要内容
Workday User Guide
上次更新时间 :2025-10-31
SELECT

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