【发布时间】:2018-03-21 19:50:42
【问题描述】:
以下是我的查询,我对 sql 比较陌生,所以我的理解不是最好的。我希望我的查询结果只给我我在“where”语句中指定的名称。在我的查询下面有 4 个活动名称、1 个团队名称和 1 个日期范围(3 个不同的列,4 个活动位于“名称”列中)。它必须符合所有这些条件。
我的查询一直有效,直到我在“where”语句中指定的第二个名称。
查询:
SELECT *
FROM databse1.dbo.table1
where team_name = 'CTM Tier 2'
and date >= '2018-02-01' and date <= '2018-02-28'
and name = 'Post Vet 460'
and name = 'Post Vet CA Complex'
and name = 'Post Vet CA Standard'
and name = 'Post Vet CAA'
查询一直运行良好,直到(并且 name = 'Post Vet 460'),但如果我将查询作为一个整体运行,它会给我空白结果。在这种情况下我应该使用 case when 语句吗,非常感谢所有建议和提示!
【问题讨论】:
-
在
where(和on)子句中使用case表达式 通常是个坏主意。请改用and/or结构。