本文介紹在 新增 SQL 資料集 中如何命名參數和如何定義參數。
參數具體使用可參見:實時資料中SQL參數使用、過濾組件的參數用法
1)不能以數字、$符號開頭。
2)變數名只能是字母(a-z A-Z)、數字(0-9)、底線(_)、(@)或中文的組合,並且之間不能包含空格。
3)變數名中不能含有? * . - 等字元和空格。
4)變數名不能使用編程語言的保留字。比如小寫 true、false 等保留字。但大寫的 TRUE、FALSE 可以。
該命名法是在每個變數名的前面加上若干表示資料型別的字元。基本原則是:變數名=屬性+型別+物件描述。
如 i 表示 int ,所有 i 開頭的變數命都表示 int 型別。s 表示 String ,所有變數命以 s 開頭的都表示 String 型別變數。
正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變數和函式的名稱。
駝峯命名法跟帕斯卡命名法相似,只是首字母為小寫,如 userName 。因為看上去像駝峯,因此而得名。
做法是首字母大寫,如 UserName 。
在建立 新增 SQL 資料集 時,直接使用where條件定義參數,並過濾出需要的資料,縮短取數時間,例如
SELECT * FROM 學生資訊表 where 學歷 = '${學歷}'
資料集 SQL 中可以使用參數巨集${}動態地生成過濾條件,${}中的語句在 FineBI 中執行,將${}的執行結果與 SQL 語句連接起來形成最終的查詢語句,傳遞給資料庫執行,可以使用多個${}。
1)例如:SELECT * FROM 學生資訊表 where 1=1 ${if(len(學歷) == 0,"","and 學歷 in ('" + 學歷 + "')")}
則設定了學歷參數,如下圖所示:
2)${} 中除了 FineBI 內建函式名、常數外,還支援自訂的參數;
例如輸入如下 SQL 語句
SELECT * FROM 學生資訊表 where 1=1 ${if(len(sex) == 0,"","and 性別 = '" + sex + "'")} ${if(len(nationality) == 0,"","and 民族 = '" + nationality + "'")}
IF 公式是 FineBI 內建公式,sex和 nationality 都是自訂的參數。如果len(sex)!=0,即 sex參數不為空,比如說 sex的值為女,那麼 IF 語句的執行結果為and 性別='女',然後再把這句話連接到 SQL 語句當中,SQL 語句就變成
SELECT * FROM 學生資訊表 where 1=1 and 性別='女' and 民族='滿族'
注:${} 中可以使用所有內建 FineBI 公式,如 IF 函式。詳情參見:函式
1)字元參數有英文單引號'${adce}',數字參數沒有英文單引號${adce}。其中 adce 為參數。
2)參數值的引用格式為參數前面加$符號,如$adce。