【问题标题】:SQL query cannot use NOT LIKE to get resultsSQL 查询不能使用 NOT LIKE 来获取结果
【发布时间】:2020-09-12 17:59:14
【问题描述】:

我开始使用 SQL,并尝试执行一个查询,该查询将选择所有唯一的事件名称,并且 event_name 列的值中没有“TODAY-XXXXXXXX”。我有一个查询可以很好地从表中获取唯一值,但我无法让 NOT LIKE 正常工作。

例如,我要删除所有名称为 TODAY-20191021 的项目,最后的数据可以更改,但日期前面都有 TODAY

这是运行良好的查询

SELECT DISTINCT event_name, COUNT(*)
FROM events 
GROUP BY event_name
Having COUNT(*) > 100.

但是当我尝试添加 where 子句时,它会因为这个错误而失败

运行查询时出错:列“TODAY-%”不存在第 3 行:WHERE event_name NOT LIKE “TODAY-%”^

这是我目前所拥有的

SELECT DISTINCT event_name, COUNT(*)
FROM events 
WHERE event_name NOT LIKE "TODAY%"
GROUP BY event_name
Having COUNT(*) > 100.

【问题讨论】:

  • 用单引号代替双引号:WHERE event_name NOT LIKE 'TODAY%'
  • 谢谢你的工作,你能把这个作为答案,我会把它标记为正确的选择。

标签: sql select count where-clause redash


【解决方案1】:

这里:

WHERE event_name NOT LIKE "TODAY%"

因为您使用双引号,所以数据库将此字符串视为标识符(此处为列名)。相反,您想使用单引号,它代表文字字符串:

WHERE event_name NOT LIKE 'TODAY%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-02
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多