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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqlserver拆分字串函式 及應用SQLServer字串函式
- Oracle自定義函式---按照某個分隔符拆分字串Oracle函式字串
- linux 中awk命令實現按照 指定的字元對文字進行排序Linux字元排序
- fun_get_split_str 取得一個字串,按照特定字元分隔的,特定位置的值.字串字元
- SqlServer——字串處理函式SQLServer字串函式
- SqlServer中字串拆分仿造split功能SQLServer字串
- sqlserver字串拆分(split)方法彙總SQLServer字串
- php字串與字元替換函式PHP字串字元函式
- PHP內建字串函式實現PHP字串函式
- 字串相關函式的實現字串函式
- SQLserver自定義樣式主鍵-函式實現篇SQLServer函式
- c++ 從txt讀取資料 按照特殊字元拆分 gnssC++字元
- golang count 單字元 字串 統計函式Golang字元字串函式
- sqlserver 拆分SQLServer
- SqlServer根據特定欄位分組後,對需要欄位進行分組拼接SQLServer
- SQLServer和Oracle常用函式對比SQLServerOracle函式
- 直播app開發,對字串中字元進行自然順序排序APP字串字元排序
- c++字串查詢函式實現C++字串函式
- oracle拆分逗號分隔字串 實現splitOracle字串
- ncurses輸出函式:字元+字串的輸出函式字元字串
- ncurses輸入函式:字元+字串的輸入函式字元字串
- SQLServer和Oracle的常用函式對比SQLServerOracle函式
- 模擬實現字串函式strlen , strcpy ,strcmp字串函式
- ORACLE單行函式與多行函式之二:字元函式示例Oracle函式字元
- js中讓字串中特定字元紅色顯示JS字串字元
- 字元函式字元函式
- SQLSERVER中實現返回漢字筆畫數的函式;SQLServer函式
- SqlServer中使用CONVERT函式實現日期格式化SQLServer函式
- SqlServer常用函式SQLServer函式
- WPS中實現文件特定字元的字型替換字元
- SqlServer中將字串轉utf-8的函式、支援中文的UrlEncode函式SQLServer字串函式
- 微軟實現字串函式的一個BUG (轉)微軟字串函式
- js實現的用指定字元每隔指定位數分割字串JS字元字串
- SQLServer對錶進行CDC捕捉時報錯SQLServer
- SQLServer對錶進行CDC捕捉報錯SQLServer
- js實現的對字串中的指定內容進行替換操作JS字串
- 【Mongodb】 對 shard 進行大量資料拆分測試MongoDB
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式