2

我创建了一个有效的 SQL 查询,但它很难看。我正在使用以下语句:

CASE WHEN p.Guests is null THEN 0 ELSE p.Guests

在查询中进行了大约 10 次计算,我想知道是否可以执行以下操作:

variable = CASE WHEN p.Guests is null THEN 0 ELSE p.Guests

然后不是123 * (CASE WHEN p.Guests is null THEN 0 ELSE p.Guests) 我可以做的123 * variable。p.Guests 是参加活动的客人人数,根据查询中的每一行而有所不同。所以我的问题是:有没有办法在 SQL 中创建这样的变量?

4

2 回答 2

3

不需要冗长的案例陈述

ISNULL(p.Guests, 0)

http://msdn.microsoft.com/en-us/library/ms184325.aspx

于 2013-07-01T22:24:24.617 回答
3

您可以使用ISNULL

select 123 * ISNULL(p.Guests,0) FROM ...

ISNULL函数将返回第一个参数,除非null在这种情况下它将返回第二个参数。

于 2013-07-01T22:24:33.880 回答