Appearance
字符串相关函数
表达式中参数说明:
- expr :表达式
- columnName :字段名
ascii
对输入参数 s 求 ASCII 值,参数的值类型必须为 String,传入其他类型将报错,接收 1 个参数,返回 Int64
语法
sql
ascii(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果 s 为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT ascii("A")
┌─ascii("A")────────────────────┐
│ 65 │
└───────────────────────────────┘bin
将输入参数 n 转为二进制格式,参数的值类型必须为 Number,传入其他类型将报错,接收 1 个参数,返回 String
语法
sql
bin(n: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果 n 为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT bin(127)
┌─bin(127)────────────────────┐
│ 1111111 │
└─────────────────────────────┘concat
将参数 str... 进行连接,可接收多个参数,所有参数的值类型必须为 String,传入其他类型将报错,返回 String
语法
sql
concat(str1: expr | columnName [, str2: expr | columnName...])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT concat("A", "B")
┌─concat("A", "B")─────────┐
│ AB │
└──────────────────────────┘concat_ws
将参数使用 sep 进行连接,可接收多个参数,所有参数的值类型必须为 String,传入其他类型将报错,返回 String
语法
sql
concat_ws(sep: expr | columnName, str1: expr | columnName [, str2: expr | columnName...])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT concat_ws(",", "A", "B")
┌─concat_ws(",", "A", "B")───────┐
│ A,B │
└────────────────────────────────┘elt
从第二个参数以后得参数列表中取 nth 个值,可接收多个参数,nth 类型为 Number 或 String 类型的数字,其他参数的值类型必须为 String,传入其他类型将报错,返回 String
语法
sql
elt(nth expr | columnName, str1: expr | columnName [, str2: expr | columnName...])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT elt(1, "A", "B")
┌─elt(1, "A", "B") ───────┐
│ A │
└─────────────────────────┘field
获取 target 在第二个参数以后得参数列表中的位置,可接收多个参数,所有参数值类型须一致,返回 Int64,若不存在,则返回 0
语法
sql
field(target: expr | columnName, str1: expr | columnName [, str2: expr | columnName])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT field("A", "B", "A")
┌─field("A", "B", "A") ─────────┐
│ 2 │
└───────────────────────────────┘lcase/lower
将参数 s 转为小写,接收 1 个 String 参数,返回 String
语法
sql
lcase/lower(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
SELECT lower("A"), lcase("A")
┌─lower("A") ───────┬─────lcase("A")─────┐
│ a │ a |
└───────────────────┴────────────────────┘left
返回第一个参数 s 最左边的 N 个字符,如果 N 大于第一个参数的长度,则返回第一个参数
语法
sql
left(s: expr | columnName, N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT left("ABCD", 2)
┌─left("ABCD", 2) ─────────┐
│ AB │
└──────────────────────────┘right
返回第一个参数 s 最右边的 N 个字符,如果 N 大于第一个参数的长度,则返回第一个参数
语法
sql
right(s: expr | columnName, N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT right("ABCD", 2)
┌─right("ABCD", 2)─────────┐
│ CD │
└──────────────────────────┘length/strlen
返回传入参数 s 的字节长度,s 类型为 String,返回 Int64
语法
sql
length/strlen(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT length("ABCD"), strlen("ABCD")
┌─length("ABCD")───┬─strlen("ABCD")───┐
│ 4 │ 4 |
└──────────────────┴──────────────────┘sql
> SELECT length("麦杰科技"), strlen("麦杰科技")
┌─length("麦杰科技")─┬─strlen("麦杰科技")───┐
│ 12 │ 12 |
└───────────────────┴────────────────────┘locate
从第二个参数 str 中获取第一个参数 substr 的开始的位置 返回 Int64
如果 pos 不为空,则返回第二个参数 substr 从 pos 以后字符串中第一个参数 substr 开始的位置
语法
sql
locate(substr: expr | columnName, str: expr | columnName [, pos: expr | columnName])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT locate("bar", "foobarbar")
┌─locate("bar", "foobarbar")─────────┐
│ 4 │
└────────────────────────────────────┘sql
> SELECT locate("bar", "foobarbar", 5)
┌─locate("bar", "foobarbar", 5)─────────┐
│ 7 │
└───────────────────────────────────────┘lpad
在第一个参数 str 的左边填充第三个参数 padstr,使第一个参数 str 的长度达到第二个参数 len,第二个参数 len 类型需为 Number,返回 String
若第二个参数 len 的值小于第一个参数 str 的长度,则返回第一个参数 str 到第二个参数 len 的值的子串
语法
sql
lpad(str: expr | columnName, len: expr | columnName, padstr: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT lpad("hi", 4, "?")
┌─lpad("hi", 4, "?")───────┐
│ ??hi │
└──────────────────────────┘sql
> SELECT lpad("hi", 1, "?")
┌─lpad("hi", 1, "?")──────┐
│ h │
└─────────────────────────┘ltrim
去除参数 str 左边的空格,如果传入 NULL,则返回 NULL
语法
sql
ltrim(str: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT ltrim(" foobar")
┌─ltrim(" foobar")───────┐
│ foobar │
└─────────────────────────┘mid
从字符串 str 的 pos 位置截取长度为 len 的子字符串
语法
sql
mid(str: expr | columnName, pos: expr | columnName, len: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT mid("foobar", 2, 3)
┌─mid("foobar", 2, 3)───────┐
│ oob │
└───────────────────────────┘oct
当 N 为 Number 时,返回 N 的八进制字符串,当传入 NULL 时,返回 NULL
语法
sql
oct(N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT oct(100)
┌─oct(100)───────┐
│ 144 │
└────────────────┘repeat
将字符串 s 重复 N 次
语法
sql
repeat(s: expr | columnName, N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT repeat("AB", 2)
┌─repeat("AB", 2)───────┐
│ ABAB │
└───────────────────────┘replace
将字符串 s2 替代字符串 s 中的字符串 s1
语法
sql
replace(s: expr | columnName, s1: expr | columnName, s2: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT replace("magus", "a", "8")
┌─replace("magus", "a", "8")───────┐
│ m8gus │
└──────────────────────────────────┘reverse
将字符串 s 的顺序翻转
语法
sql
reverse(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT reverse("magus")
┌─reverse("magus") ───────┐
│ sugam │
└─────────────────────────┘rtrim
去除字符串 s 尾部的空格
语法
sql
rtrim(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT rtrim("magus ")
┌─rtrim("magus ")───────┐
│ magus │
└───────────────────────┘space
返回 N 个空格
语法
sql
space(N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT space(3)
┌─space(3)─────────┐
│ " " │
└──────────────────┘strcmp
比较字符串 s1 和 s2,如果相等返回 0,如果 s1 > s2 返回 1,如果 s1 < s2 返回 0,返回值类型为 Int64,如果 s1, s2 均为 NULL, 则返回 NULL
语法
sql
strcmp(s1: expr | columnName, s2: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT strcmp("magus", "magus")
┌─strcmp("magus", "magus")─────────┐
│ 0 │
└──────────────────────────────────┘substr/substring
从字符串 s 的 start 位置截取长度为 length 的子字符串,从 1 开始计数
length 参数可选,当不传入时返回从 start 开始到字符串尾部的子字符串
语法
sql
substr/substring(s: expr | columnName, start: expr | columnName[, length: expr | columnName])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT substr("magus", 2, 3), substring("magus", 2, 3), substr("magus", 2), substring("magus", 2)
┌─substr("magus", 2, 3)─┬─substring("magus", 2, 3)─┬─substr("magus", 2)─┬─substring("magus", 2)─┐
│ agu │ agu | agus | agus |
└───────────────────────┴──────────────────────────┴────────────────────┴───────────────────────┘substring_index
返回从字符串 s 的第 count 个出现的分隔符 delimiter 之后的子串。
如果 count 是正数,返回第 count 个字符左边的字符串。
如果 count 是负数,返回第 (count 的绝对值 (从右边数)) 个字符右边的字符串。
语法
sql
substring_index(str: expr | columnName, delimiter: expr | columnName, count: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT substring_index("magus", "a", 1)
┌─substring_index("magus", "a", 1)───────┐
│ m │
└────────────────────────────────────────┘sql
> SELECT substring_index("magus", "a", -1)
┌─substring_index("magus", "a", -1)───────┐
│ gus │
└─────────────────────────────────────────┘trim
去掉字符串 s 开始和结尾处的空格
语法
sql
trim(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT trim(" magus ")
┌─replacetrim(" magus ")──┐
│ magus │
└─────────────────────────┘upper/ucase
将字符串 s 转为大写
语法
sql
upper/ucase(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT upper/ucase("magus")
┌─upper/ucase("magus")────┐
│ MAGUS │
└─────────────────────────┘hex
将字符串或数字转为 16 进制
语法
sql
hex(str: expr | columnName)
hex(N: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT hex("abc")
┌─hex("abc") ───────┐
│ 616263 │
└───────────────────┘sql
> SELECT hex(321)
┌─hex(321)───────┐
│ 141 │
└────────────────┘unhex
将参数中的每对十六进制数字解释为一个数字,并将其转换为该数字表示的字符。
语法
sql
unhex(s: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT unhex("616263")
┌─unhex("616263")───────┐
│ abc │
└───────────────────────┘rpad
在第一个参数 str 的右边填充第三个参数 padstr,使第一个参数 str 的长度达到第二个参数 len,第二个参数 len 类型需为 Number,返回 String
若第二个参数 len 的值小于第一个参数 str 的长度,则返回第一个参数 str 到第二个参数 len 的值的子串
语法
sql
rpad(str: expr | columnName, len expr | columnName, padstr expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT rpad("hi", 4, "?")
┌─rpad("hi", 4, "?")──────┐
│ hi?? │
└─────────────────────────┘sql
> SELECT rpad("hi", 1, "?")
┌─rpad("hi", 1, "?")──────┐
│ h │
└─────────────────────────┘bit_length
返回 str 的字节长度,类型为 Int64。如果 str 为 NULL,则返回 NULL
语法
sql
bit_length(str: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT bit_length("text")
┌─bit_length("text")───────┐
│ 32 │
└──────────────────────────┘char_length/character_length
返回 str 的字符长度,类型为 Int64
语法
sql
char_length/ character_length(str: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT char_length("magus")
┌─replace("magus", "a", "8")─────────┐
│ 5 │
└────────────────────────────────────┘sql
> SELECT char_length("麦杰科技")
┌─char_length("麦杰科技")─────────┐
│ 4 │
└────────────────────────────────┘find_in_set
找到 str 在 strList 中的位置,strList 需为以 , 分割的字符串。未找到返回 0。
如果 str 和 strList 皆为 NULL,则返回 NULL
语法
sql
find_in_set(str: expr | columnName, strList: expr | columnName)参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 Int64 类型
示例
sql
> SELECT find_in_set("a", "m,a,g,u,s")
┌─find_in_set("a", "m,a,g,u,s")─────────┐
│ 2 │
└───────────────────────────────────────┘to_string/ tostring
将 any 参数转为 String,如果未传入 sep 参数,则分隔符默认为 ,
语法
sql
to_string/ tostring(any: expr | columnName[, sep: expr | columnName])参数
expr- 表达式。columnName- 字段名或字段别名。
返回值
- 如果任一参数为 NULL,返回 NULL
- 返回 String 类型
示例
sql
> SELECT to_string/tostring(now())
┌─to_string/tostring(now())──────────────┐
│ 2024-03-09 18:06:58.6259823+08:00 │
└────────────────────────────────────────┘
帮助中心