我想在SQL SERVER中编写一个User-Defined函数,它将一个字符串作为参数并检查它是否在字符串中有一个'/',它将返回1,否则为0.
请指导我实现这种情况。
答案 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 '%/%'
。