MS SQL 类似程序中 Split 函数

在逛 MSSQL 板块的时候突然想到的问题,我也知道这类问题肯定已经有很多人都已经实现了。

不过本人还是喜欢自己尝试一下,用自己的方式


/*
* AUTHOR:Scorip
* CREATETIME:2013-03-25
* DESCRIPTION:类似于程序中的 split 函数,简化版
*             获取指定字符串中按照指定字符分割之后的指定 index 个元素             
*/
CREATE FUNCTION fun_SplitStringByChar(
@splitChar CHAR(1),		--指定分割符
@str VARCHAR(30),		--要分割的字符串
@getIndex INT)          --要获取的第几个元素
RETURNS VARCHAR(5)
AS
BEGIN
	DECLARE @result VARCHAR(5)--返回的结果
	--如果下标大于 0 则继续循环
	WHILE(@getIndex>0)
	BEGIN
		--获取分隔符的INDEX
		DECLARE @index INT
		SET @index = CHARINDEX(@splitChar,@str)
		--PRINT @index
		IF(@index>0)
		BEGIN
			SET @result = SUBSTRING(@str,0,@index)--利用 SUBSTRING 函数截取
			SET @str = SUBSTRING(@str,@index+1,LEN(@str))	--改变元字符串
		END
		ELSE
			BEGIN
				SET @result = @str
				SET @str = ''
			END
		--PRINT @str
		SET @getIndex = @getIndex - 1		--改变循环条件
	END
	RETURN @result
END
GO
/*
--调用示例
SELECT [master].[dbo].[fun_SplitStringByChar] (
   ',',
  '1,2,3,4,5',
  6 )
GO

*/




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值