sqlserver查找括号()中字符串内容的方法实现

寻技术 SQLServer 2023年11月21日 123

假如有一张学生表,表中学生姓名是学生的中文名(英文名),如何获取括号中的英文名称。

需要用到两个SQL函数的配合,一个是PATINDEX()函数或者charindex()函数,一个是substring()函数

PATINDEX()函数

1.概念:

patindex是用于返回指定模式开始位置的一个函数,其中,模式是可以包含通配符的字面字符串。开始位置从1开始算起,当知道模式中的字符串存在于表达式中时,会返回第一次出现的位置。如果不存在,返回数字0.

2.格式:

语法格式:PATINDEX ( ‘%pattern%’ , expression )

说明:

  • pattern:是用于检测的字符串
  • expression是一个表达式,可以是任意有效的数据类型,pattern会用在expression表达式中进行检测,存在就返回第一次出现的位置,不存在就返回0,下标位置从1开始。

3.具体格式:

PATINDEX ( ‘%pattern%’ , expression ):指定字符串前后模糊查询

charindex()函数

charindex()函数与PATINDEX()函数的作用是一致的,都是返回字符或者字符串在另一个字符串中的起始位置。它们的区别是PATINDEX 可使用通配符,而 CHARINDEX 不可以。

SUBSTRING函数

1.概念

SUBSTRING () 函数用于从文本字段中提取字符。

2.格式

SUBSTRING(column_name,start,length)

说明:

  • column_name为要进行提取字符的列
  • my_column_name为自定义结果要显示的名称
  • start为开始截取的位置(1为第一个字符,截掉0个字符)
  • length为截取字符后所要返回的剩余字符长度

这两个函数配合就得到我们需要的内容了

关闭

用微信“扫一扫”