【问题标题】:SQL syntax: filter by text with space at the endSQL 语法:按文本过滤,末尾有空格
【发布时间】:2013-01-01 09:59:31
【问题描述】:

尝试构建一个 SQL 语句,我可以在其中按包含单词 bike 的叙述字段过滤报告。需要包括那些包含自行车和自行车道的报告,但忽略那些只包含自行车道的报告。

似乎我需要按自行车过滤后跟一个空格,但是如何让它将该空格识别为一个字符?新的;不够熟悉,无法自己掌握!

【问题讨论】:

  • 空间不够:想必你还想匹配bike.bike,bikes等。所以你可能需要正则表达式搜索或者模糊匹配全文搜索。 ANSI 标准未涵盖这两方面的内容,因此解决方案将在很大程度上取决于您的特定数据库风格提供的功能。
  • 您使用什么风格的 SQL? SQL 服务器、甲骨文、IBM?你的桌子是什么样子的?你在用什么构建报告?
  • 您的问题应该更清楚。请分享您的查询并指定数据库。

标签: sql debugging aggregate-functions query-by-example


【解决方案1】:

需要包含那些包含自行车和自行车道的报告,但忽略那些只包含自行车道的报告。

使用一个词作为精确匹配,另一个使用LIKE 子句,如下例所示:

SELECT P.Id AS [Post Link]
FROM Posts P, PostTags Pt, Tags T
WHERE P.Id = Pt.PostId
AND T.Id = Pt.TagId
AND T.TagName = '##tag1##'
AND P.Tags like '<%##tag2##%>'
AND P.PostTypeId = 1
GROUP BY P.Id
HAVING (SELECT Count(Pt.TagId) FROM PostTags Pt WHERE Pt.PostId = P.Id) = 2

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多