我有一个看起来像这样的字符串:
/Company/Business 1/Business 2/Business 3/Business 4...
我正在寻找创建一个仅提取业务2信息的子字符串
有人可以帮忙吗?我遇到了问题,因为业务3和业务4中的信息长度不同
答案 0 :(得分:0)
以下使用SQL查询的解决方案:
我创建了SQL函数以拆分并按记录位置进行搜索,
函数参数是输入字符串,定界符char和记录编号
SQL函数-
CREATE FUNCTION [dbo].[SplitString] (
@string NVARCHAR(MAX),
@delimiter CHAR(1), @record int ) RETURNS @output TABLE(splitdata NVARCHAR(MAX) ) BEGIN
DECLARE @start INT, @end INT, @rownumber INT = 0
SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)
WHILE @start < LEN(@string) + 1 BEGIN SET @rownumber = @rownumber + 1
IF @end = 0
SET @end = LEN(@string) + 1
IF(@rownumber = @record) BEGIN INSERT INTO @output (splitdata) VALUES(SUBSTRING(@string, @start, @end - @start)) END
SET @start = @end + 1
SET @end = CHARINDEX(@delimiter, @string, @start)
END
RETURN END
选择查询-
SELECT * FROM dbo.SplitString('/Company/Business 1/Business 2/Business 3/Business 4','/',4)
结果:
业务2