SQL Server - 在SELECT查询中将一列与另一列分开

时间:2013-06-23 16:39:29

标签: sql sql-server divide

我正在寻求在SELECT查询中进行Week On Week比较。

基本代码将选择最左侧列中的不同区域,然后是以下代码:

SELECT 
   (CASE WHEN TIMESTAMP >= GETDATE() -7 AND TIMESTAMP < GETDATE() 
            THEN ORDER_ID 
            ELSE NULL 
    END) AS THISWEEK

SELECT 
   (CASE WHEN TIMESTAMP >= GETDATE() -14 AND TIMESTAMP < GETDATE() -7 
           THEN ORDER_ID 
           ELSE NULL 
    END) AS LASTWEEK

我真的希望能够(THISWEEK / LASTWEEK) - 1(就像我在excel中一样)

这可能吗?

1 个答案:

答案 0 :(得分:2)

这是你想要的吗?

select (thisweek / lastweek) - 1
from (SELECT (CASE WHEN TIMESTAMP >= GETDATE() -7 AND TIMESTAMP < GETDATE() 
                   THEN ORDER_ID 
              END) AS THISWEEK, 
            (CASE WHEN TIMESTAMP >= GETDATE() -14 AND TIMESTAMP < GETDATE() -7 
                  THEN ORDER_ID 
             END) AS LASTWEEK
      from . . .
     ) t

它定义子查询中的变量然后使用它们。请注意,对此没有任何性能损失; SQL Server不“实例化”子查询。