SQL Server中自定义函数:用指定的分隔符号分割字符串

发布时间:2019-04-09 22:43:12  访问次数:

微软SQL Server数据库中包含了很多内置的函数,入下图:

它们用于处理日期、数学、元数据、字符串等。

  其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用。

但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007-7234-7',如果想获取第三个与第四个分割符号之间的数字,

那么SQL 内置函数无法直接做到。这时就需要自定义函数。下面自定义三个函数,用于处理特殊的字符串。

  一、按指定符号分割字符串,返回分割后的元素个数

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

   调用函数:select dbo.Fun_GetStrArrayLength('978-7-5007-7234-7','-')

        结果:5

 

  二、按指定符号分割字符串,返回分割后指定索引的第几个元素,像数组一样方便

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  调用函数:select dbo.Fun_GetStrArrayStrOfIndex('978-7-5007-7234-7','-',4)

           结果:7234

 

  三、像数组一样遍历字符串中的元素

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  调用示例:select * from dbo.Fun_SplitStr('978-7-5007-7234-7','-')
    结果: 978

                     7

                     5007

                     7234

                     7