SUBSTRING_INDEX 函数介绍

目录

SUBSTRING_INDEX 是 spark sql 中一个非常实用的字符串处理函数,用于根据指定的分隔符截取字符串的部分内容。

函数语法

sql 复制代码
SUBSTRING_INDEX(str, delim, count)

参数说明

str:要处理的原始字符串

delim:分隔符(可以是单个字符或多个字符)

count:指定截取的位置:

正数:从左往右截取,返回第 count 个分隔符之前的内容

负数:从右往左截取,返回第 |count| 个分隔符之后的内容

零:返回空字符串

当计数超出范围时,返回本身;当分隔符不存在,返回本身。

示例

示例1

sql 复制代码
 SELECT 
  url,
  SUBSTRING_INDEX(url, '.', 1) AS domain,
  SUBSTRING_INDEX(url, '.', 2) AS domain1,
  SUBSTRING_INDEX(SUBSTRING_INDEX(url, '.', -2), '.', 1) AS name,
  SUBSTRING_INDEX(url, '.', -1) AS tld
FROM (
  SELECT 'www.mysql.com' AS url
) t;
powershell 复制代码
结果如下:
url            domain     domain1       name   tld
www.mysql.com   www      www.mysql     mysql  com  

示例2

sql 复制代码
SELECT 
  path,
  SUBSTRING_INDEX(path, '/', -1) AS filename,
  SUBSTRING_INDEX(path, '/', 2) AS directory,
  SUBSTRING_INDEX(path, '/', 5) AS directory1,
  SUBSTRING_INDEX(path, '*', 2) AS directory2
FROM (
  SELECT '/home/user/documents/file.txt' AS path
) t;
powershell 复制代码
结果如下:  
path                               filename        directory            directory1       directory2                                             
/home/user/documents/file.txt       file.txt     /home     /home/user/documents/file.txt  /home/user/documents/file.txt
相关推荐
ha_lydms14 小时前
Datetime Functions(日期时间函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
ha_lydms16 小时前
Bitwise Functions(位运算函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
泡海椒17 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
roman_日积跬步-终至千里19 小时前
【数据Agent论文·查询与语义|06】RAT-SQL:怎样把问题、表和字段真正关联起来?
数据库·sql·数据分析
ha_lydms20 小时前
St Functions(空间函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
ha_lydms1 天前
Table Functions(表函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
roman_日积跬步-终至千里1 天前
【数据Agent论文·查询与语义|11】EntSQL:给了业务文档,模型为何还是写不对SQL?
数据库·人工智能·sql·数据分析
ha_lydms1 天前
Json Functions(JSON 函数)
大数据·hadoop·spark·json·数据处理·dataworks·maxcompute
l1t1 天前
修改两处,让SQLite求解数独SQL在datafusion上运行
服务器·数据库·sql
ha_lydms1 天前
Conditional Functions(条件函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute