想知道如何在where子句中给出一年的任何一年及其前一年的数据。示例:如果我将2012年作为where子句的年份,我应该同时获得2012年和2011年的数据。这是在SQL Server 2008中。
Select * from TableA where Year = 2012
但我希望在同一个查询中使用2011年。
谢谢!
答案 0 :(得分:1)
您可以使用IN
,它允许您定义列表:
Select * from TableA where Year IN (2011, 2012);
答案 1 :(得分:0)
如果您只想将常年放入一次,您可以这样做:
Select *
from TableA
where 2012 in (Year, Year + 1)
答案 2 :(得分:0)
您可能已经考虑过这一点,但您应该明确说明列名而不是
Select *
无论如何,另一个选择是声明和设置年份,然后修改你的WHERE
条款。
DECLARE @SelectedYear INT
SET @SelectedYear = 2012
SELECT * FROM TableA WHERE Year = @SelectedYear OR Year = (@SelectedYear-1)
答案 3 :(得分:0)
如果您传递的是单个变量,则可以使用以下两种方式
DECLARE @year AS INT = 2012
SELECT *
FROM tablea
WHERE MyYear = @year OR MyYear = (@year-1)
或者你可以这个
DECLARE @year AS INT = 2012
SELECT *
FROM tablea
WHERE MyYear BETWEEN ((@year-1) AND @year)