功能检查字符串是否有

时间:2011-08-11 06:28:40

标签: sql sql-server user-defined-functions

我想在SQL SERVER中编写一个User-Defined函数,它将一个字符串作为参数并检查它是否在字符串中有一个'/',它将返回1,否则为0.

请指导我实现这种情况。

2 个答案:

答案 0 :(得分:4)

当您真正需要TSQL的CHARINDEX时,不确定为何要制作UDF。

如果你真的需要UDF,请尝试这样的事情:

CREATE FUNCTION dbo.HasSlash(@input varchar(max))
RETURNS bit
AS
BEGIN        
     RETURN CHARINDEX( '/',@input);
END;

像这样使用:

SELECT dbo.HasSlash('hello/world'); -- returns 1
SELECT dbo.HasSlash('hello world'); -- returns 0

答案 1 :(得分:0)

以下是一个例子:

if OBJECT_ID('dbo.fn_CheckSlash') is not null
    drop function dbo.fn_CheckSlash
go
create function dbo.fn_CheckSlash(
    @str varchar(max))
returns bit
as begin
    return cast(case when @str like '%/%' then 1 else 0 end as bit)
end
go
select dbo.fn_CheckSlash('ac+dc'), dbo.fn_CheckSlash('ac/dc')

在实践之外,您不会创建用户定义的函数,因为它增加了比它解决的更多的复杂性。您可以使用like '%/%'