書式1: match(検索文字列,)
書式2: matcha(検索文字列,)
書式3: matchs(検索文字列,)
書式4: matchas(検索文字列,)
から指定した検索文字列を検索し、 マッチすれば真をマッチしなければ偽を返す。
OR検索かAND検索か、そして完全一致か部分一致かにより、 Table 4.21に示すとおり異なる関数名を指定する。
OR検索 |
AND検索 |
|
完全一致 |
match |
matcha |
部分一致 |
matchs |
matchas |
match関数は、指定した検索文字列が、のいずれかに完全一致すれば真を返す。 matcha関数は、指定した検索文字列が、
の全てに完全一致すれば真を返す。 matchs関数は、指定した検索文字列が、
のいずれかに部分一致すれば真を返す。 matchas関数は、指定した検索文字列が、
の全てに部分一致すれば真を返す。 NULL値を含めたOR/AND論理演算の真偽値表はTable 4.8を参照のこと。
f1,f2,f3項目のいずれかが1であれば真を返す。
$ more dat1.csv id,f1,f2,f3 1,1,1,1 2,1,0,1 3,,, 4,1,,1 $ mcal c='match("1",$s{f1},$s{f2},$s{f3})' a=rsl i=dat1.csv o=rsl1.csv #END# kgcal a=rsl c=match("1",$s{f1},$s{f2},$s{f3}) i=dat1.csv o=rsl1.csv $ more rsl1.csv id,f1,f2,f3,rsl 1,1,1,1,1 2,1,0,1,1 3,,,,0 4,1,,1,1
f1,f2,f3項目の全てが文字列"1"であれば真を返す。
$ mcal c='matcha("1",$s{f1},$s{f2},$s{f3})' a=rsl i=dat1.csv o=rsl2.csv #END# kgcal a=rsl c=matcha("1",$s{f1},$s{f2},$s{f3}) i=dat1.csv o=rsl2.csv $ more rsl2.csv id,f1,f2,f3,rsl 1,1,1,1,1 2,1,0,1,0 3,,,,0 4,1,,1,0
s1,s2,s3項目のいずれかが、文字列abを含んでいれば真を返す。
$ more dat2.csv id,s1,s2,s3 1,ab,abx,x 2,abc,xaby,xxab 3,,, 4,#ac,x,x $ mcal c='matchs("ab",$s{s1},$s{s2},$s{s3})' a=rsl i=dat2.csv o=rsl3.csv #END# kgcal a=rsl c=matchs("ab",$s{s1},$s{s2},$s{s3}) i=dat2.csv o=rsl3.csv $ more rsl3.csv id,s1,s2,s3,rsl 1,ab,abx,x,1 2,abc,xaby,xxab,1 3,,,,0 4,#ac,x,x,0
文字列abがs1,s2,s3項目の全てに、文字列abが含まれて入れば真を返す。
$ mcal c='matchas("ab",$s{s1},$s{s2},$s{s3})' a=rsl i=dat2.csv o=rsl4.csv #END# kgcal a=rsl c=matchas("ab",$s{s1},$s{s2},$s{s3}) i=dat2.csv o=rsl4.csv $ more rsl4.csv id,s1,s2,s3,rsl 1,ab,abx,x,0 2,abc,xaby,xxab,1 3,,,,0 4,#ac,x,x,0
str項目がNULL値であれば真を返す。
$ mcal c='match(nulls(),$s{s1},$s{s2},$s{s3})' a=rsl i=dat2.csv o=rsl5.csv #END# kgcal a=rsl c=match(nulls(),$s{s1},$s{s2},$s{s3}) i=dat2.csv o=rsl5.csv $ more rsl5.csv id,s1,s2,s3,rsl 1,ab,abx,x,0 2,abc,xaby,xxab,0 3,,,,1 4,#ac,x,x,0