我有一个这样的TSQL存储过程:
ALTER PROCEDURE [dbo].[SearchEntityDataNew]
@SearchText varchar(100) = '*'
AS
BEGIN
IF CHARINDEX('*', @SearchText) = 0
SET @SearchText = '%' + @SearchText + '%'
ELSE
SET @SearchText = REPLACE(@SearchText, '*', '%')
SELECT 'Entity' as pagetype,EntityID,EntityData,EntityDataID
FROM EntityData
WHERE EntityData LIKE @SearchText
union all
SELECT 'Property' as pagetype,PropertyID,PropertyValue,EntityDataID
FROM EntityDataProperty
WHERE PropertyValue LIKE @SearchText
END
我想在其中允许?
,它等于_
运算符。
如何允许?
以便如果用户键入t_,则返回“to”。如果用户输入_t,则返回“它”?
答案 0 :(得分:1)
您已将*
替换为%
,因此只需将?
替换为_
变量中的@SearchText
。