我是SQL Server的新手.我创建了一个类似charindex的函数



我是SQL server的新手。我正在尝试创建一个标量值函数,它的作用类似于charindex。

IF EXISTS(SELET * FROM sysobjects 
WHERE id = OBJECT_ID(N'My_search_string')
AND xtype IN (N'FN', N'IF', N'TF'))
DROP FUNCTION My_Search_String
GO
CREATE FUNCTION My_Search_String
(@target_string varchar,
@string varchar)
RETURNS INT 
AS
BEGIN
DECLARE @result int;
SET @result = CHARINDEX(@target_string, @string)
RETURN @result 
END
GO

但我不太确定为什么当我调用这样的函数时

select dbo.My_Search_string('cd','abcde')
go

则作为结果返回CCD_ 1。非常感谢您的帮助:(今天过得很愉快伙计们

在SQL Server中,您需要指定字符串数据类型的长度。如果没有,则假定长度为1。

因此,您的创建函数行应该看起来像

Create Function My_Search_String(@target_string varchar(50),@string varchar(50))

最新更新