直通函數 (RAWSQL)
這些 RAWSQL 直通函數直接將 SQL 運算式傳送到資料庫,而無需先由 Tableau 解譯。如果您有 Tableau 不能識別的自訂資料庫函數,則可以使用直通函式呼叫這些自訂函數。
由於 Tableau 不會解譯運算式,因此必須在必要時定義彙總。需要傳遞彙總運算式時,可以使用函數的 RAWSQLAGG 版本。
RAWSQL 直通函數可能不適用於同盟(跨不同資料庫合併)或已發佈資料來源。
RAWSQL 語法
RAWSQL 函數有兩種類型,分解函數和彙總函數。這在函數名稱的第一部分 RAWSQL 或 RAWSQLAGG 中指定。函數名稱的最後一部分是輸出類型,例如 BOOL、STR 或 INT。在所有 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]。 |
