【发布时间】:2011-10-31 09:32:28
【问题描述】:
我正在尝试为 Stack Exchange 自己的 Data Explorer 编写查询。此查询将创建一个临时表,其中包含常见拼写错误的单词及其正确拼写的列表,然后搜索帖子以找到它们。
这是我目前所拥有的(减去 cmets):
DECLARE @SpellingMistakes TABLE (wrong VARCHAR(255), right VARCHAR(255))
INSERT INTO @SpellingMistakes (wrong, right)
VALUES ('ubunut', 'ubuntu')
SELECT Id as [Post Link]
FROM Posts
WHERE
...
这就是我陷入困境的地方 - 在WHERE 子句中。我需要某种方式来表达“如果Posts.Body 包含@SpellingMistakes.wrong 中的任何一个”。但是,我不知道该怎么做。
注意:数据浏览器使用 Microsoft SQL Server 2008 R2。
【问题讨论】:
-
一个糟糕的方法是
Posts.Body like + '%' +( select SpellingMistakes.wrong from SpellingMistakes) + '%'- 类似的东西 - 不确定它是否是正确的语法 -
可悲的是
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'Posts' because it is not full-text indexed. -
我认为数据浏览器使用 Azure,不如 2008 R2 功能全面。 SO的后端是SQL Server...
-
@OMGPonies 他们已从 Azure 中移出 blog.stackoverflow.com/2010/12/…
标签: sql sql-server sql-server-2008 tsql