为了账号安全,请及时绑定邮箱和手机立即绑定

MS SQL 字符拆分存处理

标签:
MySQL

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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消