position:查找子串位置
速查结论
position(substr, str[, pos]) 是 Spark SQL 中用于在字符串中查找子字符串首次出现位置的函数。
语法
position(substr, str[, pos])
返回子字符串 substr 在字符串 str 中从位置 pos 开始之后第一次出现的位置。给定的 pos 和返回值都是从1开始计数的。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| substr | STRING | 要查找的子字符串 |
| str | STRING | 被搜索的源字符串 |
| pos | INT | 可选。搜索的起始位置(从 1 开始计数) |
示例
> SELECT position('bar', 'foobarbar');
4
> SELECT position('bar', 'foobarbar', 5);
7
> SELECT POSITION('bar' IN 'foobarbar');
4
常见报错与避坑指南
- 与 locate 功能等价:
position(substr, str)与locate(substr, str)行为完全一致,两者可互换使用。POSITION(substr IN str)是另一种等价的标准 SQL 语法形式。 - 索引从 1 开始:返回值基于 1 计数,未找到时返回 0。注意与编程语言中常见的 0 起始索引区分。
Since: 1.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
