直通函數 (RAWSQL)
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])