# 表达式操作符
系统中支持的所有表达式操作符如下:
# 四则运算符
操作符 | 说明 | 示例 |
---|---|---|
+ | 加法运算 | 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') 过滤出失信企业开具的发票信息 |
= | 等于 | [纳税表].[省份]=420000 选取纳税省份等于湖北省的数据(不包含下级) ;[纳税表].[省份].[省市县层次]=420000 选取纳税省份等于湖北省的数据(包含下级) |
== (Deprecated,过时弃用) | 只等于(用于维项表达式时只等于自身) | [纳税表].[省份]==420000 选取纳税省份字段等于420000 的数据(不包含下级) |
> | 大于 | [纳税表].[纳税额]>1000 选取纳税额大于1000的数据 |
< | 小于 | [纳税表].[纳税额]<2000 选取纳税额小于2000的数据 |
>= | 大于等于 | [纳税表].[纳税额]>=1000 选取纳税额大于等于1000的数据 |
<= | 小于等于 | [纳税表].[纳税额]<=2000 选取纳税额小于等于2000的数据 |
!= | 不等于 | [纳税表].[省份]!=420000 选取纳税省份不等于湖北省的数据(不包含下级) ;[纳税表].[省份].[省市县层次]!=420000 选取纳税省份不等于湖北省的数据(包含下级) |
!== (Deprecated,过时弃用) | 不等于用于维项表达式时不包含下级 | [纳税表].[省份]!==420000 选取纳税省份字段不等于420000 的数据(不包含下级) |
<> | 不等于 | [纳税表].[月份]<>1 同上 |
=~ | 匹配计算,如果子字符串与正则表达式模式匹配,则返回true。 | "abc123"=~"[0-9]" 返回值为true |
=~ | 用于全文检索(与LIKE不同,全文检索引擎会先对搜索字符串进行分词,再基于分词后的词项进行检索)。 | [纳税表].[企业] =~ '百度技术' 或者 [纳税表].[企业] =~ '百度公司' 都可以搜索到百度在线网络技术有限公司 |
!~ | =~的非运算,如果子字符串与正则表达式模式不匹配,则返回true | "abc123"!~"[0-9]" 返回值为false |
AND | 逻辑与 | [纳税表].[月份]=1 AND [纳税表].[地区]='01' 选取纳税月份为1月且地区为01的数据 |
&& | 逻辑与 | [纳税表].[月份]=1 AND [纳税表].[地区]='01' 同上 |
OR | 逻辑或 | [纳税表].[月份]=1 || [纳税表].[月份]=2 选取纳税月份为1月或2月的数据 |
|| | 逻辑或 | [纳税表].[月份]=1 || [纳税表].[月份]=2 同上 |
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 IN | IN的非运算 | [纳税表].[地区] NOT IN ('01','02') 选取纳税地区不在(01,02)范围内的数据 |
LIKE | 与通配符组合实现模糊查询 | [纳税表].[行业] LIKE '%信息%' 选取纳税行业中包含'信息'的数据 |
NOT LIKE | LIKE的非运算 | [纳税表].[行业] NOT LIKE '%工业%' 选取纳税行业中不包含'工业'的数据 |
*= | 包含,灵活查询的操作符,详见逻辑匹配。 | [纳税表].[行业] *= '信息|电子' 选取纳税行业中包含'信息'或者'电子'的数据 |
^= | 以xx开头,等价于LIKE 'xx%' | [纳税表].[企业] ^= '中国' 选取纳税企业中以'中国'开头的数据 |
$= | 以xx结尾,等价于LIKE '%xx' | [纳税表].[企业] $= '股份有限公司' 选取纳税企业中以'股份有限公司'结尾的数据 |
WARNING
==
、!==
两个操作符在5.0+版本后已经被弃用(Deprecated),仅出于兼容低版本的需要暂未移除,未来版本可能会移除!- 对于过滤时是否包含下级维项由操作符左侧的字段决定,如果左侧是普通字段(包括维键),比如
[企业表].[所属地区]
,那么就是过滤字段本身,不包含下级维项;如果左侧是层次字段,比如[企业表].[所属地区].[省市县层次]
,那么就是按层次过滤,包含下级维项。
# 括号
操作符 | 说明 | 示例 |
---|---|---|
( | 分隔表达式的计算逻辑 | IF([利润]>0,"盈利",IF([利润]=0,"盈亏平衡","亏损")) |
) | 同上 | 同上 |
[ | 分隔系统变量(包括数据源字段、用户、位置) | [纳税表].[月份] [用户].[用户ID] |
] | 同上 | 同上 |
# 转义符
操作符 | 说明 | 示例 |
---|---|---|
, | 分隔参数、数组项等 | RANK([利润表].[销量], [利润表].[地区]) |
. | 分隔层级 | [纳税表].[月份] [用户].[用户ID] |
# 数据项分隔符
系统中使用表达式进行匹配、搜索等支持谷歌搜索引擎类似的基本语法(OR AND等),可以在输入多个数据项时以约定分隔符分隔,配合操作一起使用能快速实现多个数据项条件之间的OR或AND关系。
系统支持如下几种数据项分隔符:
操作符 | 说明 | 示例 |
---|---|---|
, | 分隔多个数据项进行或运算 | 经营状态='开业,存续' 表示选取经营状态为开业或存续的数据 |
| | 分隔多个数据项进行或运算 | 经营状态='开业|存续' 表示选取经营状态为开业或存续的数据 |
OR | 分隔多个数据项进行或运算 | 经营状态='开业 OR 存续' 表示选取经营状态为开业或存续的数据 |
& | 分隔多个数据项进行与运算 | 企业标签='小规模纳税人&化工' 表示选取企业同时具有小规模纳税人 和化工 标签的数据 |
AND | 分隔多个数据项进行与运算,需大写,左右两侧需有空格 | 企业标签='小规模纳税人 AND 化工' 表示选取企业同时具有小规模纳税人 和化工 标签的数据 |
(空格) | 分隔多个数据项进行与运算,仅用于包含 、检索 两种操作符的场景下 | 企业标签 contains '小规模纳税人 化工' 表示选取企业标签同时包含小规模纳税人 和化工 两种字符的数据 |
TIP
- 考虑到不同语言下的使用情况,
AND
、OR
两种操作符必须是大写且左右两侧都有空格才生效! - 可以结合
(
、)
来实现复杂的结合运算,比如:*=武汉&(半导体|投资)
表示包含武汉
和半导体
,或包含武汉
和投资
- 当搜索或匹配的字符串中包含操作符时,比如包含
,
和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'返回'南方地区',其他情况返回'其他' |
" | 当字符串中包括操作符时,左右用" 括起来的内容当一个完整字符串使用 | *='"(半导体|导体)"' 表示包含(半导体|导体) ; *='\"(半导体|导体)\"' 表示包含"(半导体|导体)" |
0条评论
评论