GPFZC

SQL常用函数

2026/06/30
1
0

字符串分裂

SUBSTRING_INDEX(str, delim, count)的第三个参数 count可以是任意正整数或负整数,不只是 1 和 -1。

  • 正数:从左往右,取前 count个分隔符之前的部分(包括分隔符之间的内容)。

  • 负数:从右往左,取后 |count|个分隔符之后的部分。

例子(字符串 'a:b:c:d',分隔符 ':'):

count

结果

说明

1

'a'

取第一个冒号左边

2

'a:b'

取前两个冒号左边(含第一个冒号)

3

'a:b:c'

取前三个冒号左边

-1

'd'

取最后一个冒号右边

-2

'c:d'

取最后两个冒号右边

-3

'b:c:d'

取最后三个冒号右边

所以你可以根据需要灵活使用 2、3、-2、-3 等数值来获取中间段落。


从多个值中取第一个非空值

COALESCE是 SQL 里用来取第一个非 NULL 值的函数,几乎所有数据库(MySQL、Doris、PostgreSQL、Oracle 等)都支持。

语法

COALESCE(expr1, expr2, expr3, ...)

从左到右依次判断,返回第一个不为 NULL​ 的表达式值;如果全都是 NULL,返回 NULL。

基本例子

SELECT COALESCE(NULL, NULL, 'a', 'b'); -- 返回 'a'

SELECT COALESCE(NULL, 'x', NULL); -- 返回 'x'

SELECT COALESCE(NULL, NULL); -- 返回 NULL