【问题标题】:Search a whole word in a column value在列值中搜索整个单词
【发布时间】:2020-09-28 15:45:27
【问题描述】:

我需要编写返回记录的 T-SQL 查询,其中 Text 列值包含整个单词 he

我该怎么做?

SELECT
  CreationDate,
  Text
FROM Comments
WHERE Text LIKE '%he'
ORDER BY Id DESC

此查询返回具有Text 列值的记录,其中包含he 作为单词的一部分,例如the distribution.

【问题讨论】:

  • 你看过全文索引吗? 如果我没记错的话,“他”是默认停用词,因此您可能需要创建自己的停用词列表。使用LIKE 可以获得所需的结果,但性能不会特别好。

标签: sql sql-server string tsql where-clause


【解决方案1】:

这是一种选择:

where ' ' + text + ' ' like '% he %'

【讨论】:

  • 在使用 LIKE 之前,您还需要通过空格删除所有具有 TRANSLATE 功能的非字母字符。例如句子“他吗?”在实际的 GMB 解决方案中找不到。
【解决方案2】:

这里我根据我对您的要求的理解发送我的查询。

  SELECT O.create_date, 
         O.modify_date, 
         T.COLUMN_NAME 
    FROM Information_Schema.COLUMNS T 
            INNER JOIN sys.objects O
                    ON O.name = T.TABLE_NAME
                   AND O.type = 'U'
   WHERE T.TABLE_NAME   = 'table_name' 
     AND T.COLUMN_NAME  LIKE '%he%'

问候。

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多