SQLServer用函式實現對字串按照特定字元進行拆分
SQLServer用函式實現對字串按照特定字串進行拆分:
SQL 沒有split函式,因此需要實現一個函式來實現按照特定符號對字串進行拆分。
GO
/****** Object: UserDefinedFunction [dbo].[SPLIT] Script Date: 2020/4/22 9:59:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
名稱:SPLIT
功能描述:拆分字串
引數:
@SourceSql NVARCHAR(4000), 目標字串
@StrSeprate NVARCHAR(10), 間隔字串
返回值:
@temp TABLE(sl NVARCHAR(200)) 資料表
演算法:
示例:select * FROM dbo.SPLIT('A,B,C,D',',') 返回資料表
A
B
C
D
建立時間:2006-10-23
修改:
修改時間:
*/
CREATE FUNCTION [dbo].[SPLIT](@SourceSql VARCHAR(max),@StrSeprate NVARCHAR(10))
RETURNS @temp TABLE(sl NVARCHAR(200))
AS
BEGIN
DECLARE @i INT
SET @SourceSql=RTRIM(LTRIM(@SourceSql))
SET @i=CHARINDEX(@StrSeprate,@SourceSql)
WHILE @i>=1
BEGIN
INSERT @temp VALUES(LEFT(@SourceSql,@i-1))
SET @SourceSql=SUBSTRING(@SourceSql,@i+1,LEN(@SourceSql)-@i)
SET @i=CHARINDEX(@StrSeprate,@SourceSql)
END
INSERT @temp VALUES(@SourceSql)
RETURN
END
GO
SELECT * from [dbo].[ SPLIT ] ( '1001,1002,1003' , ',' )
擴充套件一點:
傳入的是code的拼接,要求返回name的拼接;例如:輸入值為“1001,1002,1003”,返回為“哈哈哈,嘿嘿嘿,啦啦啦”;
/****** Object: UserDefinedFunction [dbo].[FuncCompanySplite] Script Date: 2020/4/22 10:04:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[FuncCompanySplite]
(
@SourceSql VARCHAR(max)
)
returns nvarchar(max)
AS
BEGIN
DECLARE @cropId nvarchar(50)
DECLARE @companyNm nvarchar(200)
DECLARE @companyNms nvarchar(max)
DECLARE @i INT
set @SourceSql = @SourceSql+','
SET @SourceSql=RTRIM(LTRIM(@SourceSql))
SET @i=CHARINDEX(',',@SourceSql)
WHILE @i>=1
BEGIN
set @cropId =(LEFT(@SourceSql,@i-1))
select @companyNm=companyNm from DV_Company where companyId=@cropId;
if @companyNms is null
begin
set @companyNms = @companyNm
end
else begin
set @companyNms = @companyNms +','+ @companyNm
end
SET @SourceSql=SUBSTRING(@SourceSql,@i+1,LEN(@SourceSql)-@i)
SET @i=CHARINDEX(',',@SourceSql)
END
RETURN @companyNms
END
GO
原文連結:https://blog.csdn.net/weixin_46867655/article/details/105675160
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2767362/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux 中awk命令實現按照 指定的字元對文字進行排序Linux字元排序
- SqlServer中字串拆分仿造split功能SQLServer字串
- golang count 單字元 字串 統計函式Golang字元字串函式
- PHP內建字串函式實現PHP字串函式
- 字串相關函式的實現字串函式
- c++ 從txt讀取資料 按照特殊字元拆分 gnssC++字元
- SqlServer根據特定欄位分組後,對需要欄位進行分組拼接SQLServer
- sqlserver 拆分SQLServer
- ncurses輸出函式:字元+字串的輸出函式字元字串
- ncurses輸入函式:字元+字串的輸入函式字元字串
- c++字串查詢函式實現C++字串函式
- 直播app開發,對字串中字元進行自然順序排序APP字串字元排序
- SqlServer中將字串轉utf-8的函式、支援中文的UrlEncode函式SQLServer字串函式
- 用listagg函式分組實現列轉行函式
- 模擬實現字串函式strlen , strcpy ,strcmp字串函式
- SQLServer對錶進行CDC捕捉報錯SQLServer
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式
- SQLSERVER日期函式(zt)SQLServer函式
- Go 實現字串首字母大、小寫函式Go字串函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- 用匯編實現add函式函式
- 用原生js進行封裝函式 實現 選項卡巢狀選項卡 功能JS封裝函式巢狀
- SQLServer對錶進行CDC捕捉時報錯SQLServer
- 對beego的控制器函式進行單測Go函式
- pandas 按照列進行求和
- 用Java拆分字串示例和技巧 -DreamixJava字串
- 三種方法實現算出字串中出現多字元字串字元
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 利用雲函式來實現獲取特定路徑+引數的小程式碼函式
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- 字串函式 metaphone ()字串函式
- 字串函式 print ()字串函式
- 字串函式 explode ()字串函式
- 字串函式 ord ()字串函式
- 字串函式 ltrim ()字串函式
- 字串函式 levenshtein ()字串函式