使用CASE返回SUM的ISNULL以选择选项

时间:2018-07-18 08:39:06

标签: sql sql-server tsql

当另一列(在同一行中)为true时,我想返回一列的值之和。但是,我无法实现...

我正在尝试下一个,但是没有人看起来是正确的。

我可以在这里得到一些帮助吗?谢谢队友。

ISNULL(SUM(CASE WHEN dbo.TD_MODULO.FIELD1== true THEN dbo.TD_MODULO.FIELD2 ELSE 0 end),0) AS MY_CALCULATED_FIELD1

isnull(sum(if dbo.td_modulo.FIELD1 == true, dbo.td_modulo.FIELD2, 0), 0) as MY_CALCULATED_FIELD2

ISNULL(SUM(CASE dbo.TD_MODULO.FIELD1 WHEN THEN dbo.TD_MODULO.FIELD2 ELSE 0 end),0) AS MY_CALCULATED_FIELD1

2 个答案:

答案 0 :(得分:2)

FIELD1是位(布尔)字段,然后将其与1或0进行比较

public class SweetViewModel
{
    public IEnumerable<Sweet> Sweet { get; set; }
    public IEnumerable<Cart> Cart { get; set; }
}

答案 1 :(得分:1)

MyException引起了人们的关注。 SQL Server中没有布尔值,因此您不能简单地编写true或false(如果是文字,则为SuperExceptiondbo.TD_MODULO.FIELD1 == true,如果为'true'则为'false'或{ {1}}),您只需要一个等号。

正确的表达式是带有BIT的{​​{1}}。假设10

SUM

您可以在其顶部堆叠CASE。无需执行TD_MODULO.FIELD1,因为VARCHAR上不会添加SUM(CASE WHEN dbo.TD_MODULO.FIELD1 = 'true' THEN dbo.TD_MODULO.FIELD2 END) (默认为ISNULL)。