Skip to content

表达式操作符

系统中支持的所有表达式操作符如下:

四则运算符

操作符说明示例
+加法运算1+2=3
-减法运算3-2=1
*乘法运算3*2=6
/除法运算6/3=2
%求模运算3%2=1

逻辑运算符

操作符说明示例
NOT非运算(与IN、LIKE、CONTAIN等组合使用)[纳税表].[行业] NOT LIKE '%工业%' 选取纳税行业中不包含'工业'的数据
!非运算(与=、~等组合使用)[纳税表].[月份]!=1 选取纳税月份不等于1月的数据
EXISTS存在运算,与SELECT函数构成过滤条件EXISTS SELECT([发票表], [企业信息].[ID]=[发票表].[销方企业] and [企业信息].[失信]='Y') 过滤出失信企业开具的发票信息
NOT EXISTS不存在NOT EXISTS SELECT([发票表], [企业信息].[ID]=[发票表].[销方企业] and [企业信息].[失信]='Y') 过滤出不是失信企业开具的发票信息
=等于[纳税表].[省份]=420000 选取纳税省份等于湖北省的数据(不包含下级) ;[纳税表].[省份].[省市县层次]=420000 选取纳税省份等于湖北省的数据(包含下级)
BELONG属于,等价于[维键字段].[默认层次]='xx'[纳税表].[省份] BELONG 420000 选取纳税省份等于湖北省的数据(包含下级),等价于 [纳税表].[省份].[默认层次]=420000420000 BELONG 420000 BELONG自身时返回true
NOT BELONG不属于(包含自身及下级),等价于[维键字段].[默认层次]!='xx'[纳税表].[省份] NOT BELONG 420000 选取纳税省份不等于湖北省的数据(包含下级),等价于 [纳税表].[省份].[默认层次]!=420000420000 NOT BELONG 420000 BELONG自身时返回false
==(Deprecated,过时弃用)只等于(用于维项表达式时只等于自身)[纳税表].[省份]==420000 选取纳税省份字段等于420000的数据(不包含下级)
>大于[纳税表].[纳税额]>1000 选取纳税额大于1000的数据
<小于[纳税表].[纳税额]<2000 选取纳税额小于2000的数据
>=大于等于[纳税表].[纳税额]>=1000 选取纳税额大于等于1000的数据
<=小于等于[纳税表].[纳税额]<=2000 选取纳税额小于等于2000的数据
!=不等于[纳税表].[省份]!=420000 选取纳税省份不等于湖北省的数据(不包含下级) ;[纳税表].[省份].[省市县层次]!=420000 选取纳税省份不等于湖北省的数据(包含下级)
!==(Deprecated,过时弃用)不等于用于维项表达式时不包含下级[纳税表].[省份]!==420000 选取纳税省份字段不等于420000的数据(不包含下级)
<>不等于[纳税表].[月份]<>1 同上
AND逻辑与[纳税表].[月份]=1 AND [纳税表].[地区]='01' 选取纳税月份为1月且地区为01的数据
&&逻辑与[纳税表].[月份]=1 AND [纳税表].[地区]='01' 同上
OR逻辑或`[纳税表].[月份]=1
``
IS连接NULL或NOT NULL关键字[纳税表].[月份] IS NULL 选取纳税月份为空的数据
IS NULL等于空同上
IS NOT NULL不等于空[纳税表].[月份] IS NOT NULL 选取纳税月份不为空的数据
BETWEEN与AND搭配,选取介于两个值之间的数据范围[纳税表].[纳税额] BETWEEN 1000 AND 2000 选取纳税额在1000-2000的数据
IN查询具体范围内数据[纳税表].[地区] IN ('01','02','03') 选取纳税地区在(01,02,03)范围内的数据
NOT ININ的非运算[纳税表].[地区] NOT IN ('01','02') 选取纳税地区不在(01,02)范围内的数据
LIKE与通配符组合实现模糊查询[纳税表].[行业] LIKE '%信息%' 选取纳税行业中包含'信息'的数据
NOT LIKELIKE的非运算[纳税表].[行业] NOT LIKE '%工业%' 选取纳税行业中不包含'工业'的数据
CONTAINS包含,灵活查询的操作符,详见逻辑匹配`[纳税表].[行业] CONTAINS '信息
NOT CONTAINS不包含`[纳税表].[行业] NOT CONTAINS '信息
STARTS WITH以xx开头,等价于LIKE 'xx%'[纳税表].[企业] STARTS WITH '中国' 选取纳税企业中以'中国'开头的数据
NOT STARTS WITH不以xx开头,等价于NOT LIKE 'xx%'[纳税表].[企业] NOT STARTS WITH '中国' 选取纳税企业中不以'中国'开头的数据
ENDS WITH以xx结尾,等价于LIKE '%xx'[纳税表].[企业] ENDS WITH '股份有限公司' 选取纳税企业中以'股份有限公司'结尾的数据
NOT ENDS WITH不以xx结尾,等价于NOT LIKE '%xx'[纳税表].[企业] NOT ENDS WITH '股份有限公司' 选取纳税企业中不以'股份有限公司'结尾的数据
MATCH REGEX匹配正则表达式"abc123" MATCH REGEX "[0-9]" 返回值为true;"abc123" match regex '^[0-9]' 返回false
NOT MATCH REGEX不匹配正则表达式"abc123" NOT MATCH REGEX "[0-9]" 返回值为false;"abc123" NOT MATCH REGEX '^[0-9]' 返回true
MATCH TEXT全文检索(与LIKE不同,全文检索引擎会先对搜索字符串进行分词,再基于分词后的词项进行检索)。[纳税表].[企业] MATCH TEXT '百度技术'或者 [纳税表].[企业] MATCH TEXT '百度公司'都可以搜索到百度在线网络技术有限公司
NOT MATCH TEXT全文检索不匹配'百度在线网络技术有限公司' NOT MATCH TEXT '百度公司' 返回false
MATCH INITIAL首字母匹配,左侧只能是配置了首字母字段的字段[企业表].[企业名称] MATCH INITIAL 'XM' 使用企业名称关联的首字母字段企业名称首字母匹配XM
NOT MATCH INITIAL首字母不匹配[企业表].[企业名称] NOT MATCH INITIAL 'XM' 企业名称关联的首字母字段企业名称首字母不匹配XM

WARNING

  1. ==!==两个操作符在5.0+版本后已经被弃用(Deprecated),仅出于兼容低版本的需要暂未移除,未来版本可能会移除!
  2. 对于过滤时是否包含下级维项由操作符左侧的字段决定,如果左侧是普通字段(包括维键),比如[企业表].[所属地区],那么就是过滤字段本身,不包含下级维项;如果左侧是层次字段,比如[企业表].[所属地区].[省市县层次],那么就是按层次过滤,包含下级维项。

括号

操作符说明示例
(分隔表达式的计算逻辑IF([利润]>0,"盈利",IF([利润]=0,"盈亏平衡","亏损"))
)同上同上
[分隔系统变量(包括数据源字段、用户、位置)[纳税表].[月份] [用户].[用户ID]
]同上同上

转义符

操作符说明示例
,分隔参数、数组项等RANK([利润表].[销量], [利润表].[地区])
.分隔层级[纳税表].[月份] [用户].[用户ID]

数据项分隔符

系统中使用表达式进行匹配、搜索等支持谷歌搜索引擎类似的基本语法(OR AND等),可以在输入多个数据项时以约定分隔符分隔,配合操作一起使用能快速实现多个数据项条件之间的OR或AND关系。

系统支持如下几种数据项分隔符:

操作符说明示例
,分隔多个数据项进行或运算经营状态='开业,存续'表示选取经营状态为开业或存续的数据
``分隔多个数据项进行或运算
OR分隔多个数据项进行或运算经营状态='开业 OR 存续'表示选取经营状态为开业或存续的数据
&分隔多个数据项进行与运算企业标签='小规模纳税人&化工'表示选取企业同时具有小规模纳税人化工标签的数据
AND分隔多个数据项进行与运算,需大写,左右两侧需有空格企业标签='小规模纳税人 AND 化工'表示选取企业同时具有小规模纳税人化工标签的数据
(空格)分隔多个数据项进行与运算,仅用于包含检索两种操作符的场景下企业标签 contains '小规模纳税人 化工'表示选取企业标签同时包含小规模纳税人化工两种字符的数据

TIP

  1. 考虑到不同语言下的使用情况,ANDOR两种操作符必须是大写且左右两侧都有空格才生效!
  2. 可以结合()来实现复杂的结合运算,比如:*=武汉&(半导体|投资)表示包含武汉半导体,或包含武汉投资
  3. 当搜索或匹配的字符串中包含操作符时,比如包含,AND等操作符需要当做普通字符串看待搜索是,可以使用双引号"括起来作为完整的字符串使用,具体参见其他符号(双引号-")

区间范围

操作符说明示例
~区间范围[销售日期].[年]=2020~2023'表示[销售日期].[年]>=2020 AND [销售日期].[年]<=2023
(左开区间[销售日期].[年]=(2020~2023)'表示[销售日期].[年]>2020 AND [销售日期].[年]<2023
)右开区间同上
[左闭区间,左右两个边界值都是闭区间时可省略[销售日期].[年]=[2020~2023]'表示[销售日期].[年]>=2020 AND [销售日期].[年]<=2023
]右闭区间,左右两个边界值都是闭区间时可省略同上

更多使用示例参考:数值范围匹配日期范围匹配

其他符号

操作符说明示例
CASE WHEN THEN ELSE END实时计算条件函数CASE WHEN [纳税表].[地区] IN('01','05','07') THEN '北方地区' WHEN [纳税表].[地区] IN('02','03','04','06') THEN'南方地区' ELSE '其他' END 地区为'01、05、07'返回'北方地区','02、03、04、06'返回'南方地区',其他情况返回'其他'
"当字符串中包括操作符时,左右用"括起来的内容当一个完整字符串使用`='"(半导体
微信公众号微信公众号:山川软件