書式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