【发布时间】:2016-11-25 08:50:10
【问题描述】:
我目前正在使用下面列出的函数来查找 2 个字符串之间的文本,我的问题是什么都没有找到它只是返回一个错误,我不会返回空格或 Null,任何人都可以就如何请改一下。?
CREATE FUNCTION [dbo].[udf_GetStringBetween2Strings]
(
@String varchar(max),
@FirstString varchar(256),
@SecondString varchar(256)
)
RETURNS VARCHAR(max)
AS
BEGIN
DECLARE @FirstPosition int, @SecondPosition int
SET @FirstPosition = CHARINDEX(@FirstString,@String) + LEN(@FirstString)
SET @SecondPosition = CHARINDEX(@SecondString,@String)
RETURN (SELECT SUBSTRING(@String, @FirstPosition, @SecondPosition - @FirstPosition))
END
【问题讨论】:
-
你的输入参数是什么,你的预期输出是什么
-
嗨,Mansoor,我已经重新检查了该功能,但很遗憾,我最初创建时没有正确保存它,这导致了我原来的问题。虽然这已经解决了我最初遇到的问题,但我认为我会进一步调查它。例如,我的函数调用类似于 select dbo.udf_GetStringBetween2Strings('
',' ','') 因为您可以看到我要查找的第一件事是字符串 这会返回“t_customer_id>”,因为第一个字符串不存在,所以我真的想要一个“未找到”。 -
您检查了我的以下查询吗?它是否适合您的预期结果..?
标签: sql-server tsql stored-functions