SQL 資料集定義參數

1. 概述

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

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

2. 參數命名

2.1 必須遵守的命名規則

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

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

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

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

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 ('" + 學歷 + "')")}   

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

1學歷參數.jpg

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

例如輸入如下 SQL 語句

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

2自訂參數.jpg

IF 公式是 FineBI 內建公式,sexnationality都是自訂的參數。如果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


附件列表


主题: 資料準備
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙