带有case datepart的SQL查询

时间:2015-10-15 06:24:20

标签: sql case datepart

我想获取基于绑定变量值从结果中排除周末的数据。不知何故,我无法运行此查询。

Compile as C++ Code (/TP)

我收到以下错误:关键字附近的语法错误' NOT'

1 个答案:

答案 0 :(得分:0)

在这里使用case表达式使事情过于复杂,恕我直言。你有两种情况:

  1. 如果绑定变量为Y,则需要排除周末。
  2. 如果不是,则要包含它们。
  3. 这个逻辑可以通过or逻辑运算符的更简单(再次,恕我直言)用法来实现:

    SELECT *
    FROM   tablename a
    WHERE  a.date >= '2015-04-13' AND 
           a.date <= '2015-04-21' AND
           (:1 != 'Y' OR ((DATEPART(dw, a.date) + @@DATEFIRST) % 7) NOT IN (0, 1))