1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 处理字符串_13_按照指定的分隔符截取字符返回表形式

处理字符串_13_按照指定的分隔符截取字符返回表形式

时间:2019-07-21 03:07:13

相关推荐

处理字符串_13_按照指定的分隔符截取字符返回表形式

按照指定的分隔符截取字符返回表形式

需求描述

需求:按照逗号拆分字符串,并指定返回的格式是表.

解决方法:这里需要自定义函数结合substring截取字符串,以达到该效果.

注: 数据库数据集SQL脚本详见如下链接地址

员工表结构和数据初始化SQL脚本

SQL代码

--SQL Server:CREATE FUNCTION strSplitTable(@str NVARCHAR(2000),@split NVARCHAR(2))RETURNS @t TABLE(SubStr VARCHAR(1000) )AS BEGINDECLARE @tmpSubStr VARCHAR(1000),@getIndex INTSET @getIndex=CHARINDEX(',',@str)WHILE(@getIndex<>0) BEGINSET @tmpSubStr=CONVERT(VARCHAR(1000),SUBSTRING(@str,1,@getIndex-1))INSERT INTO @t(SubStr) VALUES (@tmpSubStr)SET @str=STUFF(@str,1,@getIndex,'')SET @getIndex=CHARINDEX(',',@str) ENDINSERT INTO @t(SubStr) VALUES (@str)RETURN ENDGOSELECT *FROm strSplitTable('Hello,World,SQL',',')

执行结果

--注: 1) 自Sql Server 已新增系统函数STRING_SPLIT,测试示例见下:SELECT A.value value_A,B.value value_B FROM ( SELECT value FROM STRING_SPLIT('A$B$C','$') )ALEFT JOIN (SELECT value FROM STRING_SPLIT('A,B',',') )BON A.value = B.value

/*2) 这里STRING_SPLIT的分隔符仅支持单字符,多字符会报如下错误.消息 214,级别 16,状态 11,第 12 行Procedure expects parameter 'separator' of type 'nchar(1)/nvarchar(1)'.*/

Mysql:

未见该方法.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。