当前位置: 首页 > news >正文

TDengine 支持的所有运算符

简介

TDengine 在表达式中可以支持各种运算符,JSON 运算是比较特殊的一种运算符

算术运算符

#运算符支持的类型说明
1+, -数值类型表达正数和负数,一元运算符
2+, -数值类型表示加法和减法,二元运算符
3*, /数值类型表示乘法和除法,二元运算符
4%数值类型表示取余运算,二元运算符

位运算符

#运算符支持的类型说明
1&数值类型按位与,二元运算符
2|数值类型按位或,二元运算符

JSON 运算符

-> 运算符可以对 JSON 类型的列按键取值。-> 左侧是列标识符,右侧是键的字符串常量,如 col->'name',返回键 'name' 的值。

集合运算符

集合运算符将两个查询的结果合并为一个结果。包含集合运算符的查询称之为复合查询。复合查询中每条查询的选择列表中的相应表达式在数量上必须匹配,且结果类型以第一条查询为准,后续查询的结果类型必须可转换到第一条查询的结果类型,转换规则同 CAST 函数。

TDengine 支持 UNION ALLUNION 操作符。UNION ALL 将查询返回的结果集合并返回,并不去重。UNION 将查询返回的结果集合并并去重后返回。在同一个 SQL 语句中,集合操作符最多支持 100 个。

比较运算符

#运算符支持的类型说明
1=除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型相等
2<>, !=除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型,且不可以为表的时间戳主键列不相等
3>, <除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型大于,小于
4>=, <=除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型大于等于,小于等于
5IS [NOT] NULL所有类型是否为空值
6[NOT] BETWEEN AND除 BOOL、BLOB、MEDIUMBLOB、JSON 和 GEOMETRY 外的所有类型闭区间比较
7IN除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型,且不可以为表的时间戳主键列与列表内的任意值相等
8NOT IN除 BLOB、MEDIUMBLOB 和 JSON 外的所有类型,且不可以为表的时间戳主键列与列表内的任意值都不相等
9LIKEBINARY、NCHAR 和 VARCHAR通配符匹配所指定的模式串
10NOT LIKEBINARY、NCHAR 和 VARCHAR通配符不匹配所指定的模式串
11MATCH, NMATCHBINARY、NCHAR 和 VARCHAR正则表达式匹配
12CONTAINSJSONJSON 中是否存在某键

LIKE 条件使用通配符字符串进行匹配检查,规则如下:

  • ‘%’(百分号)匹配 0 到任意个字符;‘_’(下划线)匹配单个任意 ASCII 字符。
  • 如果希望匹配字符串中原本就带有的 _(下划线)字符,那么可以在通配符字符串中写作 _,即加一个反斜线来进行转义。
  • 通配符字符串最长不能超过 100 字节。不建议使用太长的通配符字符串,否则将有可能严重影响 LIKE 操作的执行性能。

MATCH 条件和 NMATCH 条件使用正则表达式进行匹配,规则如下:

  • 支持符合 POSIX 规范的正则表达式,具体规范内容可参见 Regular Expressions。
  • MATCH 和正则表达式匹配时, 返回 TURE. NMATCH 和正则表达式不匹配时, 返回 TRUE.
  • 只能针对子表名(即 tbname)、字符串类型的标签值进行正则表达式过滤,不支持普通列的过滤。
  • 正则匹配字符串长度不能超过 128 字节。可以通过参数 maxRegexStringLen 设置和调整最大允许的正则匹配字符串,该参数是客户端配置参数,需要重启客户端才能生效

逻辑运算符

#运算符支持的类型说明
1ANDBOOL逻辑与,如果两个条件均为 TRUE, 则返回 TRUE。如果任一为 FALSE,则返回 FALSE
2ORBOOL逻辑或,如果任一条件为 TRUE, 则返回 TRUE。如果两者都是 FALSE,则返回 FALSE

TDengine 在计算逻辑条件时,会进行短路径优化,即对于 AND,第一个条件为 FALSE,则不再计算第二个条件,直接返回 FALSE;对于 OR,第一个条件为 TRUE,则不再计算第二个条件,直接返回 TRUE。

访问官网

更多内容欢迎访问 TDengine 官网

相关文章:

  • 零基础学python+人工智能ai(持续更新ing)
  • 【MySQL】基本查询(下)
  • 什么是MCP(Model Context Protocol)?对话、意图识别、服务调用和上下文管理
  • django self.get_queryset() 如何筛选
  • Flask实时监控:打造智能多设备在线离线检测平台(升级版)
  • 素数判定方法详解:从基础试除法到优化策略
  • linux系统 Ubuntu22.04安装Nvidia驱动,解决4060系列显卡重启黑屏方法
  • c语言笔记 结构体内嵌套结构体的表示方式
  • 二维前缀矩阵
  • 十七、实战开发 uni-app x 项目(仿京东)- 后端指南
  • 5.0 VisionPro调用USB相机的方法与步骤说明(一)
  • Vue 渲染 LaTeX 公式 Markdown 库
  • 问题 | ACOS(X) 与 ACOSD(X)的区别
  • cmake结合qt开发界面程序实例
  • 二、小白学JAVA-认识数据类型【变量】
  • 【数学建模】TOPSIS法简介及应用
  • 在不考虑符号,不考虑溢出的情况下,用循环将字符串转换为整型做乘积 再用字符串形式输出
  • 前端剪贴板操作:从传统方法到现代方案
  • 【数据库】如何用索引优化查询性能
  • Kafka-Exporter 9308端口启用TLS认证的完整指南
  • 新任重庆市垫江县委副书记刘振已任县政府党组书记
  • 蒋圣龙突遭伤病出战世预赛存疑,国足生死战后防线严重减员
  • 思想史家陈谷嘉逝世,曾为岳麓书院当代复兴奠定重要基础
  • 鸿海下调全年营收展望:AI服务器业务强劲,预计今年营收增超50%
  • 山东:小伙为救同学耽误考试属实,启用副题安排考试
  • 四部门:到2025年底,全国行政村5G通达率超过90%