直通函數 (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])
輸出Date(日期)
定義從給定 SQL 運算式傳回日期結果。
範例
RAWSQL_DATE("%1", [Order Date])

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

RAWSQLAGG_DATE

語法RAWSQLAGG_DATE("sql_expr", [arg1], …[argN])
輸出Date(日期)
定義從給定彙總 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]。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!