继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MS SQL 字符拆分存处理

慕娘5729972
关注TA
已关注
手记 240
粉丝 133
获赞 771

MS SQL Server没有split()函数,但是我们可以写一个Table-valued Functions定义函数[dbo].[udf_SplitStringToTable] :


CREATE FUNCTION [dbo].[udf_SplitStringToTable] (     @string NVARCHAR(MAX),     @delimiter CHAR(1) ) RETURNS @result TABLE([ID] INT IDENTITY(1,1),value NVARCHAR(MAX) ) BEGIN     DECLARE @start INT, @end INT     SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)     WHILE @start < LEN(@string) + 1     BEGIN         IF @end = 0              SET @end = LEN(@string) + 1               INSERT INTO @result (value) VALUES (SUBSTRING(@string, @start, @end - @start))         SET @start = @end + 1         SET @end = CHARINDEX(@delimiter, @string, @start)            END     RETURN END

Source Code


再写另外一个Scalar-valued Function自定义函数[dbo].[udf_SplitString]:



CREATE FUNCTION [dbo].[udf_SplitString](    @string NVARCHAR(MAX),     @delimiter CHAR(1),    @index INT)RETURNS NVARCHAR(MAX)ASBEGIN    DECLARE @rtn NVARCHAR(MAX)    SELECT @rtn = [value] FROM [dbo].[udf_SplitStringToTable] (@string,@delimiter) WHERE [ID] = @index    RETURN @rtnENDGO

Source Code


上面代码示例中@index参数即是你想获取第几个字符串,举个例子吧:


 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP