结果:
- CREATE FUNCTION fGetStrBySplit
- (
- @Source VARCHAR(max),
- @Index INT,
- @SplitChar VARCHAR(1)
- )
- RETURNS varchar(MAX)
- AS
- BEGIN
- DECLARE @Len INT
- DECLARE @n INT = 0
- DECLARE @ChIndex INT
- DECLARE @Result VARCHAR(MAX)
- --获取总长度
- SET @Len = LEN(@Source)
- --获取切割字符位置
- SET @ChIndex = CHARINDEX(@SplitChar,@Source)
- WHILE @ChIndex > 0
- BEGIN
- IF(@n = @Index)
- BEGIN
- SET @Source = SUBSTRING(@Source,0,@ChIndex)
- BREAK
- END
- SET @Source = SUBSTRING(@Source,@ChIndex+1,@Len)
- SET @ChIndex = CHARINDEX(@SplitChar,@Source)
- SET @Len = LEN(@Source)
- SET @n = @n + 1
- END
- RETURN @Source
- END
- GO
- --调用
- DECLARE @value VARCHAR(max)
- SET @value = dbo.fGetStrBySplit('645002*01_45854_183677_12',0,'_')
- PRINT @value
新闻热点
疑难解答