【发布时间】:2011-08-21 19:20:55
【问题描述】:
我有以下查询:
SELECT *
FROM dbo.tblOrders o
WHERE o.OrderId IN (SELECT [Value] FROM [dbo].[udf_GenerateVarcharTableFromStringList](@OrderId, ','))
AND
@ActiveInactive =
CASE
WHEN 'Active' THEN (o.[orderactivedate] > o.[orderinactivedate])
WHEN 'Inactive' THEN (o.[orderactivedate] < o.[orderinactivedate])
END
这会返回
An expression of non-boolean type specified in a context where a condition is expected, near 'THEN'.
我怎样才能让它发挥作用?说如果参数是 'Active' 则返回符合以下条件的记录?
【问题讨论】:
-
顺便说一句...您需要关闭“Active” Then 语句上的括号。
-
添加了右括号
标签: sql sql-server tsql case