在SQL Server 2008中,是否可以从布尔表达式派生一个列,如下所示?
SELECT item
, (SUM(dqty) =pty) as tORf
GROUP BY item WHERE uid = 1
是的你可以,但不是那样直接。您可以使用CASE
语句:
SELECT item, (CASE WHEN SUM(dqty) = pty THEN 1 ELSE 0 END) AS tORf
FROM your_table
GROUP BY item, pty
WHERE uid = 1
注意:我添加了缺少的FROM
语句,并将pty
添加到GROUP BY
。如果您不想按其分组,则需要在聚合函数中使用它。它不能像你的查询一样松散。
这是一个demo。
您当前的语法无效,无法使用。但是,您可以使用equals定义别名,如下所示:
SELECT
item,
pty = SUM(dqty)
FROM yourTable
GROUP BY item;
但以下情况会失败:
SELECT item, SUM(duty) = pty FROM yourTable ...
换句话说,别名需要出现在LHS上。