[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

自定义Sql表达式字段

添加自定义字段可以在不影响原数据的情况下通过对现有数据进行计算得到一个新的数据字段。

使用 Sql 表达式添加自定义字段不仅能够让您充分使用数据源原生的能力(如库函数等),还能令您设计的数据集有更高的运算效率。

注意

  • Sql 表达式字段是直接在数据源上执行的,执行效率较高但必须遵循数据源的语法规则且不能跨表跨源操作。

  • 复用其他数据集时,不支持添加 Sql 表达式字段。

添加Sql表达式字段

1. 在字段所在行单击image2018-6-7_17-12-31.png,选择添加Sql表达式字段(截图以直连数据集为例)。

image

type=info

缓存数据集中支持添加度量值和计算列,详见添加度量值和计算列

2. 在弹出的Sql表达式配置对话框中输入新添加的字段名称;单击左侧数据源名称选择一个数据源并单击下拉箭头选择数据表;

双击字段名将其添加到表达式再添加具体函数完成表达式的书写,最后按需选择直接保存保存并继续创建按钮。

image2020-8-25_14-16-40.png

type=info

提示

在表达式中,可以使用@符号引用数据集中的查询参数。如需使用之前未定义过的查询参数,则先在表达式中书写,如“@P1”,然后单击右下角的“参数”按钮快速添加参数。

image2020-8-25_14-22-38.png

如果当前连接的数据源为 Postgres 类型时,表达式中需为原字段添加双引号。如"产品单价"*2

3. 预览。勾选产品单价作为输出字段,单击页面上方的预览按钮,预览效果如下。

新添加的 Sql表达式字段 默认必须输出,不能取消。如不需要输出此新加字段,请将其删除。

image2021-5-31_12-19-56.png

语法说明

Sql表达式遵循其引用字段所在表的数据源规定的语法。

例如Oracle源上有一个表TableA,您准备针对TableA中的字段 FirstName 和 LastName 设计一个新的字段 FullName,其值为 FirstName+空格+LastName。

按照Oracle的语法,您需要在表达式输入栏中填写 FirstName || " " || LastName 并命名此字段名为 FullName。

如果此源是Excel,则您需要遵守WynSql的语法: FirstName + ' ' + LastName ,或者 Join(FirstName, LastName, ' ')

type=info

提示:

Sql 表达式只能用来在数据行级别进行运算。因为本质它相当于数据源上的“select XXX from Table”无法支持 GroupBy 操作,故而不能使用Sum等聚合函数。

Sql 表达式能够使用查询参数。如同使用原生 Sql 查询一样的规则,无论何种数据源,参数的引用方式都形如 @Parameter1。