SUBSTRING_INDEX(str, delim, count)的第三个参数 count可以是任意正整数或负整数,不只是 1 和 -1。
正数:从左往右,取前 count个分隔符之前的部分(包括分隔符之间的内容)。
负数:从右往左,取后 |count|个分隔符之后的部分。
例子(字符串 'a: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