Skip to content

查询数据节点

查询数据节点用于从指定数据表中读取符合条件的记录,对应常规数据库操作中的 SELECT。它通过可视化方式配置返回字段、筛选条件、排序方式和查询上限,无需编写 SQL,适合单表查询场景。

需要跨表关联、聚合计算、子查询或其他复杂查询时,再考虑 SQL 自定义节点。普通查询优先使用本节点,字段和筛选范围更容易检查。

添加与配置

在节点面板的 数据库 分类中添加 查询数据 节点。选择数据表后,属性面板依次提供查询字段、查询条件、排序方式、查询上限、输出和异常处理配置。

查询数据节点主要配置

截图示例从 daily_expenses 表查询 nameprice:只保留 price 大于等于 100 的记录,按 price 从高到低排序,最多返回 50 条。

数据表

单击 添加数据表,从资源库数据库中选择目标表。每个查询数据节点只支持操作一张数据表;选中后可以移除并重新选择。

执行前应确认:

  • 数据表属于正确的工作空间和运行环境;
  • 当前执行身份具有读取权限;
  • 字段结构和类型与流程预期一致;
  • 多用户数据隔离、调试数据隔离等能力已在目标环境实际验证。

应以所选数据库、运行渠道和实际测试结果为准。

查询字段

单击 查询字段 右侧的加号,从数据表字段中选择要返回的列,可以添加多个字段。

选择查询字段后,会同步把这些字段添加到 outputList 的子项中。例如选择 name Stringprice Integer 后,下游可以按对应名称和类型引用查询结果。

建议只选择后续流程真正需要的字段,避免读取大字段、敏感字段或无关列。如果不配置查询字段,节点虽然可以保留空字段列表,但输出结构不够明确;正式流程应显式选择字段并通过试运行确认返回内容。

查询条件

查询条件用于限定记录范围。每个条件由字段、运算符和值组成,值可以填写固定值,也可以引用开始节点、上游输出或流程变量。

运算符会根据字段类型变化:

字段类型支持的运算符
字符串等于、不等于、模糊匹配、不模糊匹配、属于、不属于、为空、不为空
整数、数字等于、不等于、大于、小于、大于等于、小于等于、属于、不属于、为空、不为空
时间等于、不等于、大于、小于、大于等于、小于等于、为空、不为空
布尔等于、不等于、为空、不为空、为真、为假

其中“为空”“不为空”“为真”“为假”不需要额外填写右值;“属于”和“不属于”使用列表类型的值。

添加多个条件后,可以选择条件关系:

  • :所有条件都满足时返回;
  • :任一条件满足时返回。

不设置查询条件会扩大查询范围,应始终结合查询上限和权限控制。面向用户输入的筛选值还应先做类型、空值和业务范围校验。

排序方式

单击 排序方式 右侧的加号选择排序字段,可以配置多个字段,并通过拖动调整排序优先级。

排序选项随字段类型显示:

  • 字符串:A→ZZ→A
  • 数字、时间和布尔等类型:0→99→0

需要稳定分页或稳定获取最新记录时,应选择具有确定性的排序字段;当主排序字段可能重复时,再增加唯一字段作为后续排序依据。

查询上限

查询上限用于限制最多返回的记录数,默认值为 100,允许范围为 1~1000

不要把最大值当作默认选择。应根据下游节点实际需要设置较小上限;需要处理大量记录时,优先使用分页、批处理或其他可控的数据处理方案,避免一次读取过多记录。

输出

查询数据节点输出与异常配置

查询数据节点提供两个固定输出:

输出类型说明
outputListArray<Object>符合条件的记录列表;查询字段会同步为对象子项
rowNumInteger记录数量输出;应以实际试运行结果确认具体值

查询没有命中时,下游应按空列表处理,不要直接访问第一项。修改查询字段后,应检查 outputList 子项和所有下游引用是否仍然一致。

默认输出中未定义 errorBodyisSuccess,异常处理应通过对应分支或运行结果处理。

异常处理

新建节点的默认设置为:

  • 整体执行超时:60 秒;
  • 重试次数:不重试;
  • 异常处理方式:中断流程。

查询通常没有写入副作用,但重试仍可能增加数据库压力或造成重复的外部调用链。只有确认查询可安全重放、超时设置合理并评估数据量后,才考虑启用重试。

如果业务允许查询失败后继续,应通过明确的异常分支提供降级值或提示;下游必须能够区分“查询成功但没有数据”和“查询执行失败”。

示例:查询金额较高的费用记录

  1. 选择 daily_expenses 数据表;
  2. 查询字段选择 nameprice
  3. 添加条件:price 大于等于 100
  4. 排序字段选择 price,排序方式选择 9→0
  5. 将查询上限设置为 50
  6. 试运行后检查 outputListrowNum 和字段类型;
  7. 再把结果传给循环、批处理、输出或其他下游节点。

常见问题

为什么 outputList 中没有需要的字段?

检查是否已在查询字段中选中该列。已选字段会同步到 outputList 子项;修改字段后,还要检查下游是否仍引用原有名称或类型。

为什么查询结果为空?

依次核对数据表、运行环境、字段类型、条件值和条件关系。尤其要区分数字 100 与字符串 "100",并确认引用变量在执行路径上已经产生值。

为什么添加第二个条件后结果明显变多?

检查条件关系是否为“或”。“或”只要求任一条件成立,范围通常比“且”更大;需要同时满足多个限制时应改为“且”。

为什么返回记录顺序每次不一致?

没有配置排序,或排序字段存在大量重复值。添加稳定的排序字段;需要完全确定顺序时,再追加唯一字段作为次级排序。

为什么最多只能查询 1000 条?

查询上限的有效范围是 1~1000。大量数据不应一次全部加载,应改用分页、批处理或拆分任务,并控制并发和下游处理成本。

为什么试运行能查到数据,其他运行渠道却查不到?

先核对工作空间、数据库、执行身份和运行环境,并分别在目标渠道验证数据源和权限。

查询数据节点和 SQL 自定义节点怎么选?

单表字段筛选、排序和数量限制优先使用查询数据节点。只有可视化配置无法表达关联、聚合或复杂 SQL 时才使用 SQL 自定义节点,并加强参数和权限控制。