跳到主要内容

position:查找子串位置

速查结论

position(substr, str[, pos]) 是 Spark SQL 中用于在字符串中查找子字符串首次出现位置的函数。

语法

position(substr, str[, pos])

返回子字符串 substr 在字符串 str 中从位置 pos 开始之后第一次出现的位置。给定的 pos 和返回值都是从1开始计数的。

参数说明

参数类型说明
substrSTRING要查找的子字符串
strSTRING被搜索的源字符串
posINT可选。搜索的起始位置(从 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真题

交流微信二维码

你可能还想看