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参数即是你想获取第几个字符串,举个例子吧:
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦