當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

SQL 資料集定義參數

1. 概述

本文介紹在 新增 SQL 資料集 中如何命名參數和如何定義參數。

參數具體使用可參見:實時資料中SQL參數使用過濾組件的參數用法

2. 參數命名

2.1 必須遵守的命名規則

1)不能以數字、$符號開頭。

2)變數名只能是字母(a-z A-Z)、數字(0-9)、底線(_)、(@)或中文的組合,並且之間不能包含空格。

3)變數名中不能含有? * . - 等字元和空格。

4)變數名不能使用編程語言的保留字。比如小寫 true、false 等保留字。但大寫的 TRUE、FALSE 可以。

2.2 經典命名規則

2.2.1 匈牙利命名法

該命名法是在每個變數名的前面加上若干表示資料型別的字元。基本原則是:變數名=屬性+型別+物件描述

如 i 表示 int ,所有 i 開頭的變數命都表示 int 型別。s 表示 String ,所有變數命以 s 開頭的都表示 String 型別變數。

2.2.2 駱駝命名法

正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變數和函式的名稱。

駝峯命名法跟帕斯卡命名法相似,只是首字母為小寫,如 userName 。因為看上去像駝峯,因此而得名。

2.2.3 帕斯卡命名法

做法是首字母大寫,如 UserName 。

3. 參數範例

3.1 不使用公式定義參數

在建立 新增 SQL 資料集 時,直接使用where條件定義參數,並過濾出需要的資料,縮短取數時間,例如

SELECT * FROM 學生資訊表 where 學歷 = '${學歷}'  

3.2 使用公式定義參數

資料集 SQL 中可以使用參數巨集${}動態地生成過濾條件,${}中的語句在 FineBI 中執行,將${}的執行結果與 SQL 語句連接起來形成最終的查詢語句,傳遞給資料庫執行,可以使用多個${}

1)例如:SELECT * FROM 學生資訊表 where 1=1 ${if(len(學歷) == 0,"","and 學歷 in ('" + 學歷 + "')")}

則設定了學歷參數,如下圖所示:

a1.png

2)${} 中除了 FineBI 內建函式名、常數外,還支援自訂的參數;

例如輸入如下 SQL 語句

SELECT * FROM 學生資訊表 where 1=1  ${if(len(sex) == 0,"","and 性別 = '" + sex + "'")} ${if(len(nationality) == 0,"","and 民族 = '" + nationality + "'")}  

a2.png

IF 公式是 FineBI 內建公式,sex和 nationality 都是自訂的參數。如果len(sex)!=0,即 sex參數不為空,比如說 sex的值為女,那麼 IF 語句的執行結果為and 性別='女',然後再把這句話連接到 SQL 語句當中,SQL 語句就變成

SELECT * FROM 學生資訊表 where 1=1 and 性別='女' and 民族='滿族'

注:${} 中可以使用所有內建 FineBI 公式,如 IF 函式。詳情參見:函式 

4. 注意事項

1)字元參數有英文單引號'${adce}',數字參數沒有英文單引號${adce}。其中 adce 為參數。

2)參數值的引用格式為參數前面加$符號,如$adce

附件列表


主題: 连接到数据
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!