? SP中的字符用于单字符通配符

时间:2012-11-09 15:38:11

标签: sql sql-server tsql

我有一个这样的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,则返回“它”?

1 个答案:

答案 0 :(得分:1)

您已将*替换为%,因此只需将?替换为_变量中的@SearchText