我想检查我的字符串在存储过程中包含空格或逗号的位置,并根据我想要拆分字符串:
ALTER PROCEDURE [dbo].[SearchworkerDemo]
@SearchKeyword nvarchar(70)
SELECT *
FROM [splitstring_to_table](@SearchKeyword,',')
注意:splitstring_to_table
是我用户定义的函数,用于拆分字符串。
这里我用逗号分隔字符串以进行测试。但是字符串可以用逗号分隔或空格分隔来传递。
所以我想首先检查@SearchKeyword
包含空格或逗号
有人能告诉我如何在存储过程中检查我的字符串是否包含空格或逗号?
答案 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;