内容:

直通函数 (RAWSQL)

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop, Tableau Online, Tableau Public, Tableau Server

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

您的数据库通常不会理解在 Tableau 中显示的字段名称。因为 Tableau 不会解释包含在直通函数中的 SQL 表达式,所以在表达式中使用 Tableau 字段名称可能会导致错误。可以使用替换语法将用于 Tableau 计算的正确字段名称或表达式插入直通 SQL。例如,假设您有一个计算一组中值的函数,则可以对 Tableau 列 [Sales] 调用该函数,如下所示:

RAWSQLAGG_REAL(“MEDIAN(%1)”, [Sales])

因为 Tableau 不解释该表达式,所以您必须定义聚合。在使用聚合表达式时,可以使用下面描述的 RAWSQLAGG 函数。

RAWSQL 直通函数不使用已发布数据源或 Tableau 数据提取。

在 Tableau Desktop 8.2 中启动时,这些函数可能返回与在较低版本的 Tableau Desktop 中不同的结果。这是因为 Tableau 现在对直通函数使用 ODBC 而非 OLE DB。当以整数形式返回实际值时,ODBC 会截断,而 OLE DB 会舍入。

RAWSQL 函数

Tableau 中提供了以下 RAWSQL 函数。

RAWSQL_BOOL(“sql_expr”, [arg1], …[argN])

从给定 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

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

RAWSQL_BOOL("%1 > %2", [Sales], [Profit])

RAWSQL_DATE(“sql_expr”, [arg1], …[argN])

从给定 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

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

RAWSQL_DATE(“%1”, [Order Date])

RAWSQL_DATETIME(“sql_expr”, [arg1], …[argN])

从给定 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。

示例

RAWSQL_DATETIME("%1", [Order Date])

RAWSQL_INT(“sql_expr”, [arg1], …[argN])

从给定 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。

示例

RAWSQL_INT(“500 + %1”, [Sales])

RAWSQL_REAL(“sql_expr”, [arg1], …[argN])

从直接传递给基础数据库的给定 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]

示例

RAWSQL_REAL(“-123.98 * %1”, [Sales])

RAWSQL_SPATIAL

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

示例

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

RAWSQL_SPATIAL("%1", [Geometry])

RAWSQL_STR(“sql_expr”, [arg1], …[argN])

从直接传递给基础数据库的给定 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Customer Name]。

示例

RAWSQL_STR(“%1”, [Customer Name])

RAWSQLAGG_BOOL(“sql_expr”, [arg1], …[argN])

从给定聚合 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

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

RAWSQLAGG_BOOL(“SUM( %1) >SUM( %2)”, [Sales], [Profit])

RAWSQLAGG_DATE(“sql_expr”, [arg1], …[argN])

从给定聚合 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Order Date]。

示例

RAWSQLAGG_DATE(“MAX(%1)”, [Order Date])

RAWSQLAGG_DATETIME(“sql_expr”, [arg1], …[argN])

从给定聚合 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。

示例

RAWSQLAGG_DATETIME(“MIN(%1)”, [Delivery Date])

RAWSQLAGG_INT(“sql_expr”, [arg1,] …[argN])

从给定聚合 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。

示例

RAWSQLAGG_INT(“500 + SUM(%1)”, [Sales])

RAWSQLAGG_REAL(“sql_expr”, [arg1,] …[argN])

从直接传递给基础数据库的给定聚合 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]

示例

RAWSQLAGG_REAL(“SUM( %1)”, [Sales])

RAWSQLAGG_STR(“sql_expr”, [arg1,] …[argN])

从直接传递给基础数据库的给定聚合 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在此示例中,%1 等于 [Discount]。

示例

RAWSQLAGG_STR(“AVG(%1)”, [Discount])