我有一个包含Id,Name和Active列的表'Route'。如果Id = 0,我想选择其中Active = true的所有Id。SQL语句中的WHERE子句陈述
如果Id> 0我想选择特定Id的数据,其中Active = true。
我试着用下面的查询。但不工作。 (在这里我通过了2的Id值。) 有人可以支持我吗?
DECLARE @ID INT
SET @ID = 2
SELECT DISTINCT Id ,Name
FROM Route
WHERE
CASE WHEN @ID > 0
THEN Id = @ID AND Active= 1
ELSE
Active=1
END
附加样本数据。
我试过了。但失败 – Tom 2014-11-05 09:50:12
是'活跃'一个字符串字段(''True'')还是一个整数字段('1')? – 2014-11-05 09:57:42
Active是一个Boolian字段 – Tom 2014-11-05 10:01:03