0
点赞
收藏
分享

微信扫一扫

TDengine函数大全-字符串函数



以下所有示例基于 TDengine 3.1.0.3

TDengine函数大全

1.数学函数


2.字符串函数


3.转换函数


4.时间和日期函数


5.聚合函数


6.选择函数


7.时序数据库特有函数


8.系统函数


字符串函数

  • TDengine函数大全
  • CHAR_LENGTH
  • CONCAT
  • CONCAT_WS
  • LENGTH
  • LOWER
  • LTRIM
  • RTRIM
  • SUBSTR
  • UPPER


CHAR_LENGTH

CHAR_LENGTH(expr)

功能说明:以字符计数的字符串长度。

返回结果类型:BIGINT。

适用数据类型:VARCHAR(BINARY), NCHAR。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:
写入测试数据

> create table t2(ts timestamp,v1 nchar(100),v2 binary(100));
> insert into t2 values(now,'1234567890','1234567890');
> insert into t2 values(now,'abcdefghijklmnopq','abcdefghijklmnopq');
> select * from t2;
           ts            |               v1               |               v2               |
============================================================================================
 2023-08-30 16:50:51.997 | 1234567890                     | 1234567890                     |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq              | abcdefghijklmnopq              |

> select * from t2;
           ts            |               v1               |               v2               |
============================================================================================
 2023-08-30 16:50:51.997 | 1234567890                     | 1234567890                     |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq              | abcdefghijklmnopq              |

> select ts,char_length(v1),char_length(v2) from t2;
           ts            |    char_length(v1)    |    char_length(v2)    |
==========================================================================
 2023-08-30 16:50:51.997 |                    10 |                    10 |
 2023-08-30 16:51:13.694 |                    17 |                    17 |

> select ts,char_length(v1),char_length(v2) from (select * from t2);
           ts            |    char_length(v1)    |    char_length(v2)    |
==========================================================================
 2023-08-30 16:50:51.997 |                    10 |                    10 |
 2023-08-30 16:51:13.694 |                    17 |                    17 |

> select char_length('1234567890')  from t2 limit 1;
 char_length('1234567890') |
============================
                        10 |

CONCAT

CONCAT(expr1, expr2 [, expr] ... )

功能说明:字符串连接函数。

返回结果类型:如果所有参数均为 VARCHAR 类型,则结果类型为 VARCHAR。如果参数包含NCHAR类型,则结果类型为NCHAR。如果参数包含NULL值,则输出值为NULL。

适用数据类型:VARCHAR, NCHAR。 该函数最小参数个数为2个,最大参数个数为8个。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> select * from t2;
           ts            |               v1               |               v2               |
============================================================================================
 2023-08-30 16:50:51.997 | 1234567890                     | 1234567890                     |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq              | abcdefghijklmnopq              |

> select ts,concat(v1,v2) from t2;
           ts            |         concat(v1,v2)          |
===========================================================
 2023-08-30 16:50:51.997 | 12345678901234567890           |
 2023-08-30 16:51:13.694 | abcdefghijklmnopqabcdefghij... |

> select ts,char_length(concat(v1,v2)) from t2;
           ts            | char_length(concat(v1,v2)) |
=======================================================
 2023-08-30 16:50:51.997 |                         20 |
 2023-08-30 16:51:13.694 |                         34 |

> select ts,concat(v1,v1,v2,v2) from t2;
           ts            |      concat(v1,v1,v2,v2)       |
===========================================================
 2023-08-30 16:50:51.997 | 123456789012345678901234567... |
 2023-08-30 16:51:13.694 | abcdefghijklmnopqabcdefghij... |

> select ts,char_length(concat(v1,v1,v2,v2)) from t2;
           ts            | char_length(concat(v1,v1,v2,v2)) |
=============================================================
 2023-08-30 16:50:51.997 |                               40 |
 2023-08-30 16:51:13.694 |                               68 |

> select concat('CONCAT ','funcation ','test!') from t2 limit 1;
 concat('CONCAT ','funcation ','test!') |
=========================================
 CONCAT funcation test!                 |

> select char_length(concat('CONCAT ','funcation ','test!')) from t2 limit 1;
 char_length(concat('CONCAT ','funcation ','test!')) |
======================================================
                                                  22 |
>  select concat('a','b','c','d','e','f','g','h') from t2 limit 1;
 concat('a','b','c','d','e','f','g','h') |
==========================================
 abcdefgh                                |

> select concat('a','b','c','d','e','f','g','h','i') from t2 limit 1;
DB error: Invalid number of parameters : concat (0.000437s)

> select concat('a') from t2 limit 1;
DB error: Invalid number of parameters : concat (0.000223s)

CONCAT_WS

CONCAT_WS(separator_expr, expr1, expr2 [, expr] ...)

功能说明:带分隔符的字符串连接函数。

返回结果类型:如果所有参数均为VARCHAR类型,则结果类型为VARCHAR。如果参数包含NCHAR类型,则结果类型为NCHAR。如果参数包含NULL值,则输出值为NULL。

适用数据类型:VARCHAR, NCHAR。 该函数最小参数个数为3个,最大参数个数为9个。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> select * from t2;
           ts            |               v1               |               v2               |
============================================================================================
 2023-08-30 16:50:51.997 | 1234567890                     | 1234567890                     |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq              | abcdefghijklmnopq              |

> select ts,concat_ws(',',v1,v2) from t2;
           ts            |      concat_ws(',',v1,v2)      |
===========================================================
 2023-08-30 16:50:51.997 | 1234567890,1234567890          |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq,abcdefghi... |

> select ts,concat_ws(',',v1,v2,v1,v2) from t2;
           ts            |   concat_ws(',',v1,v2,v1,v2)   |
===========================================================
 2023-08-30 16:50:51.997 | 1234567890,1234567890,12345... |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq,abcdefghi... |

> set max_binary_display_width 60;
> select ts,concat_ws(',',v1,v2,v1,v2) from t2;
           ts            |                  concat_ws(',',v1,v2,v1,v2)                  |
=========================================================================================
 2023-08-30 16:50:51.997 | 1234567890,1234567890,1234567890,1234567890                  |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq,abcdefghijklmnopq,abcdefghijklmnopq,abc... |

> select concat_ws(' ','a','b','c','d','e','f','g','h') from t2 limit 1;
 concat_ws(' ','a','b','c','d','e','f','g','h') |
=================================================
 a b c d e f g h                                |

LENGTH

LENGTH(expr)

功能说明:以字节计数的字符串长度。

返回结果类型:BIGINT。

适用数据类型:输入参数是 VARCHAR 类型或者 NCHAR 类型的字符串或者列。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> desc t2;
                  field                   |          type          |   length    |    note    |
===============================================================================================
 ts                                       | TIMESTAMP              |           8 |            |
 v1                                       | NCHAR                  |         100 |            |
 v2                                       | VARCHAR                |         100 |            |

> select ts,v1 from t2;
           ts            |                    v1                    |
=====================================================================
 2023-08-30 16:50:51.997 | 1234567890                               |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq                        |

> select ts,char_length(v1),length(v1) from t2;
           ts            |    char_length(v1)    |      length(v1)       |
==========================================================================
 2023-08-30 16:50:51.997 |                    10 |                    40 |
 2023-08-30 16:51:13.694 |                    17 |                    68 |

> select ts,v2 from t2;
           ts            |                    v2                    |
=====================================================================
 2023-08-30 16:50:51.997 | 1234567890                               |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq                        |

> select ts,char_length(v2),length(v2) from t2;
           ts            |    char_length(v2)    |      length(v2)       |
==========================================================================
 2023-08-30 16:50:51.997 |                    10 |                    10 |
 2023-08-30 16:51:13.694 |                    17 |                    17 |

类型

Bytes

说明

BINARY

自定义

记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 NCHAR

NCHAR

自定义

记录包含多字节字符在内的字符串,如中文字符。每个 NCHAR 字符占用 4 字节的存储空间。

LOWER

LOWER(expr)

功能说明:将字符串参数值转换为全小写字母。

返回结果类型:与输入字段的原始类型相同。

适用数据类型:VARCHAR, NCHAR。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> select * from t2;
           ts            |                    v1                    |                    v2                    |
================================================================================================================
 2023-08-30 16:50:51.997 | 1234567890                               | 1234567890                               |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq                        | abcdefghijklmnopq                        |
 2023-08-31 08:32:41.830 | ABCDEFGH                                 | IJKLMNO                                  |

> select ts,lower(v1),lower(v2) from t2;
           ts            |                lower(v1)                 |                lower(v2)                 |
================================================================================================================
 2023-08-30 16:50:51.997 | 1234567890                               | 1234567890                               |
 2023-08-30 16:51:13.694 | abcdefghijklmnopq                        | abcdefghijklmnopq                        |
 2023-08-31 08:32:41.830 | abcdefgh                                 | ijklmno                                  |

> select lower('ABCDEFGHIJKLMNO') from t2 limit 1;
 lower('ABCDEFGHIJKLMNO') |
===========================
 abcdefghijklmno          |

LTRIM

LTRIM(expr)

功能说明:返回清除左侧开头空格后的字符串。

返回结果类型:与输入字段的原始类型相同。

适用数据类型:VARCHAR, NCHAR。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> insert into t2 values(now,' abc def gh','ABC def GH ');
> select * from t2;
           ts            |                    v1                    |                    v2                    |
================================================================================================================
 2023-08-31 08:32:41.830 | ABCDEFGH                                 | IJKLMNO                                  |
 2023-08-31 08:35:45.209 | abc def gh                               | ABC DEF                                  |
 2023-08-31 08:40:33.666 |  abc def gh                              | ABC def GH                               |

> select ts,ltrim(v1),ltrim(v2) from t2;
           ts            |                ltrim(v1)                 |                ltrim(v2)                 |
================================================================================================================
 2023-08-31 08:32:41.830 | ABCDEFGH                                 | IJKLMNO                                  |
 2023-08-31 08:35:45.209 | abc def gh                               | ABC DEF                                  |
 2023-08-31 08:40:33.666 | abc def gh                               | ABC def GH                               |

> select concat('|',ltrim(' abcdef '),'|') from t2 limit 1;
 concat('|',ltrim(' abcdef '),'|') |
====================================
 |abcdef |                         |

RTRIM

RTRIM(expr)

功能说明:返回清除右侧结尾空格后的字符串。

返回结果类型:与输入字段的原始类型相同。

适用数据类型:VARCHAR, NCHAR。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例

> insert into t2 values(now,' abc def gh','ABC def GH ');
> select * from t2;
           ts            |                    v1                    |                    v2                    |
================================================================================================================
 2023-08-31 08:32:41.830 | ABCDEFGH                                 | IJKLMNO                                  |
 2023-08-31 08:35:45.209 | abc def gh                               | ABC DEF                                  |
 2023-08-31 08:40:33.666 |  abc def gh                              | ABC def GH                               |

> select ts,rtrim(v1),rtrim(v2) from t2;
           ts            |                rtrim(v1)                 |                rtrim(v2)                 |
================================================================================================================
 2023-08-31 08:32:41.830 | ABCDEFGH                                 | IJKLMNO                                  |
 2023-08-31 08:35:45.209 | abc def gh                               | ABC DEF                                  |
 2023-08-31 08:40:33.666 |  abc def gh                              | ABC def GH                               | 

> select concat('|',rtrim(' abcdef '),'|') from t2 limit 1;
 concat('|',rtrim(' abcdef '),'|') |
====================================
 | abcdef|                         |

SUBSTR

SUBSTR(expr, pos [,len])

功能说明:从源字符串 str 中的指定位置 pos 开始取一个长度为 len 的子串并返回。如果输入参数 len 被忽略,返回的子串包含从 pos 开始的整个字串。

返回结果类型:与输入字段的原始类型相同。

适用数据类型:VARCHAR, NCHAR。输入参数 pos 可以为正数,也可以为负数。如果 pos 是正数,表示开始位置从字符串开头正数计算。如果 pos 为负数,表示开始位置从字符串结尾倒数计算。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例

> desc t2;
                  field                   |          type          |   length    |    note    |
===============================================================================================
 ts                                       | TIMESTAMP              |           8 |            |
 v1                                       | NCHAR                  |         100 |            |
 v2                                       | VARCHAR                |         100 |            |

> select * from t2;
           ts            |                    v1                    |                    v2                    |
================================================================================================================
 2023-08-31 08:49:15.674 | a1234567890                              | a1234567890                              |

> select ts,substr(v1,2),substr(v1,2,2) from t2;
           ts            |               substr(v1,2)               |              substr(v1,2,2)              |
================================================================================================================
 2023-08-31 08:49:15.674 | 1234567890                               | 12                                       |

> select ts,substr(v1,2),substr(v1,2,2) from (select * from t2);
           ts            |               substr(v1,2)               |              substr(v1,2,2)              |
================================================================================================================
 2023-08-31 08:49:15.674 | 1234567890                               | 12                                       |

> select substr('asdfghjkl',3,1) from t2 limit 1;
 substr('asdfghjkl',3,1) |
==========================
 d                       |

UPPER

UPPER(expr)

功能说明:将字符串参数值转换为全大写字母。

返回结果类型:与输入字段的原始类型相同。

适用数据类型:VARCHAR, NCHAR。

嵌套子查询支持:适用于内层查询和外层查询。

适用于: 表和超级表。

示例:

> select * from t2;
           ts            |                    v1                    |                    v2                    |
================================================================================================================
 2023-08-31 08:49:15.674 | a1234567890                              | a1234567890                              |
 2023-08-31 08:52:41.118 | abcdef                                   | Ghijk                                    |

> select ts,upper(v1),upper(v2) from t2;
           ts            |                upper(v1)                 |                upper(v2)                 |
================================================================================================================
 2023-08-31 08:49:15.674 | A1234567890                              | A1234567890                              |
 2023-08-31 08:52:41.118 | ABCDEF                                   | GHIJK                                    |

> select ts,upper(v1),upper(v2) from (select * from t2);
           ts            |                upper(v1)                 |                upper(v2)                 |
================================================================================================================
 2023-08-31 08:49:15.674 | A1234567890                              | A1234567890                              |
 2023-08-31 08:52:41.118 | ABCDEF                                   | GHIJK                                    |

> select upper('abcDEFghi') from t2 limit 1;
 upper('abcDEFghi') |
=====================
 ABCDEFGHI          |


举报

相关推荐

0 条评论