修改底表
功能介绍
当系统生成一个 SQL 时,对于 FROM 从句,有三种选择方式。本文档将详细介绍这三种方式及其使用场景。
三种 FROM 从句方式
方式一:从 Schema 的 ID 字段获取(默认)
这是最简单的方式,系统会直接使用 Schema 的 ID 作为 FROM 的表名。
示例:如果 Schema 的 ID 为 dwd_sales,那么最后生成的 SQL 的 FROM 部分为:
这种方式适合大多数常规场景,无需额外配置。
方式二:固定 SQL
如果你需要换一张表或者换一个数据库,可以使用固定 SQL 方式。
配置路径:编辑 Schema -> 高级配置 -> From哪张表 -> 固定SQL
示例:在固定 SQL 里面填入 ads.sales,那么最后生成的 SQL 的 FROM 部分为:
子查询/视图场景:如果需要使用子查询(虚拟视图),必须用括号将整个 SELECT 语句包裹起来。
示例:在固定 SQL 里面填入:
那么最后生成的 SQL 的 FROM 部分为:
Warning
使用子查询时,请确保最外层使用括号 () 包裹,否则生成的 SQL 会出现语法错误。
这种方式适合以下场景:
- 需要指定完整的数据库和表名(如
database.table) - 需要使用与 Schema ID 不同的表名
- 需要使用子查询进行数据预处理(如聚合、字段重命名等)
方式三:不同提问不同 SQL(fromSQL 函数)
Tip
此方式的使用需要有 SQL 和 JavaScript 基础。
对于需要根据提问时的筛选条件不同而决定不同 SQL 的场景,可以使用 fromSQL 函数。
配置路径:编辑 Schema -> 高级配置 -> From哪张表 -> 不同提问不同SQL
示例场景:
- 根据用户选择的地区不同,从不同的表中查询数据
- 根据时间范围不同,从历史表或实时表中查询
fromSQL 函数
函数签名
参数说明
helperFunctions 可用函数
helperFunctions 中包含以下帮助函数:
返回值要求
fromSQL 函数需要返回一个字符串,表示要使用的表名或完整的 FROM 语句。
返回值示例:
'dwd_sales'- 简单表名'ads.sales'- 带数据库的表名'(SELECT xxx FROM xxx GROUP BY xxx)'- 子查询
使用示例
配置入口
三种方式的配置都在同一个位置:
编辑 Schema -> 高级配置 -> From哪张表

