处理字符串_13_按照指定的分隔符截取字符返回表形式
生活随笔
收集整理的這篇文章主要介紹了
处理字符串_13_按照指定的分隔符截取字符返回表形式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ?按照指定的分隔符截取字符返回表形式
需求描述
需求:按照逗號拆分字符串,并指定返回的格式是表.
解決方法:這里需要自定義函數結合substring截取字符串,以達到該效果.
注: 數據庫數據集SQL腳本詳見如下鏈接地址
員工表結構和數據初始化SQL腳本
?
SQL代碼
--SQL Server: CREATE FUNCTION strSplitTable(@str NVARCHAR(2000),@split NVARCHAR(2)) RETURNS @t TABLE(SubStr VARCHAR(1000) ) AS BEGIN DECLARE @tmpSubStr VARCHAR(1000),@getIndex INT SET @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) END INSERT INTO @t(SubStr) VALUES (@str) RETURN END GOSELECT *FROm strSplitTable('Hello,World,SQL',',')執行結果
--注: 1) 自Sql Server 2016已新增系統函數STRING_SPLIT,測試示例見下: SELECT A.value value_A,B.value value_B FROM ( SELECT value FROM STRING_SPLIT('A$B$C','$') )A LEFT JOIN (SELECT value FROM STRING_SPLIT('A,B',',') )B ON A.value = B.value /* 2) 這里STRING_SPLIT的分隔符僅支持單字符,多字符會報如下錯誤.消息 214,級別 16,狀態 11,第 12 行 Procedure expects parameter 'separator' of type 'nchar(1)/nvarchar(1)'. */Mysql:
未見該方法.
總結
以上是生活随笔為你收集整理的处理字符串_13_按照指定的分隔符截取字符返回表形式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u启动怎么进入菜单 如何进入u启动菜单
- 下一篇: 处理数字_1_计算某列的最小/大值