學習Qlik函式match 與 pick 的用法

2021-08-20 18:03:28 字數 1340 閱讀 1830

在qliksense cookbook一書中有這樣一段載入指令碼,根據這段指令碼來理解 pick  和 match 函式:

eg: pick(match("product",'footwear', 'tyres', 'mountain bikes', 'road bikes'),rgb(236,129,0),rgb(250,185,0), rgb(70,137,164), rgb(141,25,8)) as "productcolor" 

通過qlik sense 指導手冊查到這樣乙個例子:

pick( n,'a','b',4 )

返回 'b',如果 n = 2

返回  4, 如果 n = 3

得出結論:pick 函式是根據n的值 返回後面第n個選擇項的值   (n從1開始)

match( m, 'jan','feb','mar')

返回 2,如果 m = feb

返回 0,如果 m = apr 或 jan (沒有匹配到的情況)

得出結論:match 函式是根據傳入 的m值與後面的選擇項匹配,匹配上了則返回對應的選擇項的對應位置的序號(從1開始),沒匹配上則返回0.

tips:傳入的值和匹配項間是要求完全匹配的,即會考慮字母大小寫。

即  根據對於這兩個函式的進一步理解,我們得出指令碼中的載入語句的意圖是:

product 為 'footwear' 設定顏色為:rgb(236,129,0)

product 為 'tyres' 設定顏色為:rgb(250,185,0)

product 為 'mountainbikes' 設定顏色為:rgb(70,137,164)

product 為 'roadbikes' 設定顏色為:rgb(141,25,8)

class 函式:class(expression, interval [ , label [ , offset ]])

class( var,10 ) with var = 23,返回 '20<=x<30'

class(var,5,'value' ) with var= 23,返回 '20<= value <25'

class( var,10,'x',5 ) with var = 23,返回 '15<=x<25'

var 即為要傳入的變數值 和引數expression對應 interval 為區間長度範圍  label 為最後返回結果裡面的變數,offset 為起始點

針對這個函式要清楚 在沒有設定offset值時  缺省區間起始點是從0開始的 (即offset是用來設定修改缺省區間起始點的)

eg1中第乙個是0<=x<10 ,10<=x<20,20<=x<30 …

eg4中是設定了offset為5   則第乙個是 5<=x<15 ,15<=x<25…

Qlik函式學習之rand和round

通過下面的指令碼案例學習理解兩個函式round與 rand transactions round 1000 rand rand rand as sales,recno as transidwhile rand 0.5 or iterno 1 round 函式 round x step offset ...

正則驗證,match()與test()函式的區別?

test是regexp的方法,引數是字串,返回值是boolean型別。match是string的方法,引數是正規表示式,返回值是陣列。案例 1 判斷日期型別是否為yyyy mm dd格式的型別 2function isdate d 2 d 6var r str.match reg 7if r nul...

(P14)建構函式與析構函式 拷貝建構函式

include test.h intmain void ifndef test h define test h class test endif test h 14cpp 14cpp 14cpp test.cpp include test.h include using namespace std ...