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 '%/%'を使うことができます。

関連する問題