检查字符串是否在存储过程中包含空格或逗号

时间:2014-12-05 04:44:35

标签: sql sql-server stored-procedures

我想检查我的字符串在存储过程中包含空格或逗号的位置,并根据我想要拆分字符串:

ALTER PROCEDURE [dbo].[SearchworkerDemo]
    @SearchKeyword nvarchar(70)
   SELECT * 
   FROM [splitstring_to_table](@SearchKeyword,',')

注意splitstring_to_table是我用户定义的函数,用于拆分字符串。

这里我用逗号分隔字符串以进行测试。但是字符串可以用逗号分隔或空格分隔来传递。

所以我想首先检查@SearchKeyword包含空格或逗号

的位置

有人能告诉我如何在存储过程中检查我的字符串是否包含空格或逗号?

1 个答案:

答案 0 :(得分:0)

我认为通常你会将拆分字符传递给存储过程。但是,如果这是不可能的,那么这样的事情可能有用:

ALTER PROCEDURE [dbo].[SearchworkerDemo] (
    @SearchKeyword nvarchar(70)
)
BEGIN
    IF @SearchKeyword like '%,%'
    BEGIN
        SELECT * FROM [splitstring_to_table](@SearchKeyword, ',')
    END
    ELSE BEGIN
        SELECT * FROM [splitstring_to_table](@SearchKeyword, ' ')
    END
END;

如果您想:

,可以简化此操作
ALTER PROCEDURE [dbo].[SearchworkerDemo] (
    @SearchKeyword nvarchar(70)
)
BEGIN
    declare @sep varchar(255) = (case when @SearchKeyword like '%,%' then ',' else ' ' end)'
    SELECT * FROM [splitstring_to_table](@SearchKeyword, @sep);
END;