2011-08-11 11 views
0

SQL SERVER에 사용자 정의 함수를 작성하여 문자열을 매개 변수로 사용하고 문자열에 '/'가 있으면 검사합니다. 반환합니다. 1이고 다른 경우는 0입니다.기능 문자열이 있는지 여부를 확인하려면

이 시나리오를 달성하기 위해 안내해주십시오.

+1

가 무의미한 것 같다 당신이 정말 UDF해야하는 경우

이 같은 시도 문자열에 표시되지 않으면 0입니다. –

답변

4

TSQL의 CHARINDEX이 정말 필요한 경우 UDF를 만드는 이유가 확실하지 않습니다.

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

같이 그것을 사용 :`CHARINDEX`가 이미 존재하고 문자가 나타납니다 어떤 위치를 알려줍니다 때

SELECT dbo.HasSlash('hello/world'); -- returns 1 
SELECT dbo.HasSlash('hello world'); -- returns 0 
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 '%/%'을 사용해도됩니다.

관련 문제