直通函数 (RAWSQL)

这些 RAWSQL 直通函数将 SQL 表达式直接发送到数据库,而不先由 Tableau 进行解析。如果您有 Tableau 不能识别的自定义数据库函数,则可以使用直通函数调用这些自定义函数。

因为 Tableau 不解释该表达式,所以您必须在必要时定义聚合。当您需要传递聚合表达式时,可以使用函数的 RAWSQLAGG 版本。

RAWSQL 直通函数可能不适用于联合数据源(跨不同数据库合并)或已发布数据源。

RAWSQL 语法

RAWSQL 函数有两种类型:解聚和聚合。这是在函数名称的第一部分中指定的:RAWSQLRAWSQLAGG。函数名称的最后一部分是输出类型,例如 BOOLSTRINT。在所有 RAWSQL 函数中,参数都为 "sql_expr", [arg1], ...[arg2]。编写函数时,可以使用替换语法 %n 插入正确的字段名称或表达式。

%n 替换语法

您的数据库通常不会理解在 Tableau 中显示的字段名称。因为 Tableau 不会解释直通函数中的 SQL 表达式,所以在表达式中使用 Tableau 字段名称可能会导致错误。使用 %n 将用于 Tableau 计算的正确字段名称或表达式插入直通 SQL。

例如,假设您有一个计算一组中值的函数,则可以对 Tableau 列 [Sales] 调用该函数,如下所示:

RAWSQLAGG_REAL("MEDIAN(%1)", [Sales])
  • REALSQLAGG:因为您想要指定聚合。
  • REAL:因为输出是数字,不一定是整数。
  • MEDIAN 是聚合。
  • %1[Sales] 的占位符。

RAWSQL 函数

SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

Tableau 中提供了以下 RAWSQL 函数:

RAWSQL_BOOL

语法RAWSQL_BOOL("sql_expr", [arg1], …[argN])
输出布尔值
定义从给定 SQL 表达式返回布尔结果。
示例
RAWSQL_BOOL("%1 > %2", [Sales], [Profit])

在示例中,%1 等于 [Sales],%2 等于 [Profit]。

RAWSQLAGG_BOOL

语法RAWSQLAGG_BOOL("sql_expr", [arg1], …[argN])
输出布尔值
定义从给定聚合 SQL 表达式返回布尔结果。
示例
RAWSQLAGG_BOOL("SUM( %1) >SUM( %2)", [Sales], [Profit]) 

在示例中,%1 等于 [Sales],%2 等于 [Profit]。

RAWSQL_DATE

语法RAWSQL_DATE("sql_expr", [arg1], …[argN])
输出日期
定义从给定 SQL 表达式返回日期结果。
示例
RAWSQL_DATE("%1", [Order Date])

在下例中,%1 等于 [Order Date]。

RAWSQLAGG_DATE

语法RAWSQLAGG_DATE("sql_expr", [arg1], …[argN])
输出日期
定义从给定聚合 SQL 表达式返回日期结果
示例
RAWSQLAGG_DATE("MAX(%1)", [Order Date])

在下例中,%1 等于 [Order Date]。

RAWSQL_DATETIME

语法RAWSQL_DATETIME("sql_expr", [arg1], …[argN])
输出日期时间
定义从给定 SQL 表达式返回日期时间结果。
示例
RAWSQL_DATETIME("%1", [Order Date])

在下例中,%1 等于 [Order Date]。

RAWSQLAGG_DATETIME

语法RAWSQLAGG_DATETIME("sql_expr", [arg1], …[argN])
输出日期时间
定义从给定聚合 SQL 表达式返回日期时间结果。
示例
RAWSQLAGG_DATETIME("MIN(%1)", [Order Date])

在下例中,%1 等于 [Order Date]。

RAWSQL_INT

语法RAWSQL_INT("sql_expr", [arg1], …[argN])
输出整数
定义从给定 SQL 表达式返回整数结果。
示例
RAWSQL_INT("500 + %1", [Sales])

在下例中,%1 等于 [Sales]。

RAWSQLAGG_INT

语法RAWSQLAGG_INT("sql_expr", [arg1,] …[argN])
输出整数
定义从给定聚合 SQL 表达式返回整数结果。
示例
RAWSQLAGG_INT("500 + SUM(%1)", [Sales])

在下例中,%1 等于 [Sales]。

RAWSQL_REAL

语法RAWSQL_REAL("sql_expr", [arg1], …[argN])
输出数字
定义从给定 SQL 表达式返回数字结果。
示例
RAWSQL_REAL("-123.98 * %1", [Sales])

在下例中,%1 等于 [Sales]

RAWSQLAGG_REAL

语法RAWSQLAGG_REAL("sql_expr", [arg1,] …[argN])
输出数字
定义从给定聚合 SQL 表达式返回数字结果。
示例
RAWSQLAGG_REAL("SUM( %1)", [Sales])

在下例中,%1 等于 [Sales]。

RAWSQL_SPATIAL

语法RAWSQL_SPATIAL("sql_expr", [arg1], …[argN])
输出空间
定义从给定 SQL 表达式返回空间结果。
示例
RAWSQL_SPATIAL("%1", [Geometry])

在本例中,%1 等于 [Geometry]。

注意此函数没有 RAWSQLAGG 版本。

RAWSQL_STR

语法RAWSQL_STR("sql_expr", [arg1], …[argN])
输出字符串
定义从给定 SQL 表达式返回字符串。
示例
RAWSQL_STR("%1", [Customer Name])

在下例中,%1 等于 [Customer Name]。

RAWSQLAGG_STR

语法RAWSQLAGG_STR("sql_expr", [arg1,] …[argN])
输出字符串
定义从给定聚合 SQL 表达式返回字符串。
示例
RAWSQLAGG_STR("AVG(%1)", [Discount])

在此示例中,%1 等于 [Discount]。

感谢您的反馈!您的反馈已成功提交。谢谢!