T-SQL 语法将负值和 NULL 值都显示为 0

T-SQL syntax to show both negative values and NULL values as 0

我正在使用 SQL Server 2014,我有一个查询代码行:

ISNULL(b.[LEISURE],0) AS 'LEISURE'

Leisure 的值也可以是负数,在这种情况下我希望该值也显示为 0。

如何在我的代码中包含这两个条件?

使用 CASE 表达式..

Case when b.lesure<0 or b.lesure is null then 0 else b.lesure End

您可以使用 CASE 代替:

SELECT CASE WHEN b.LEISURE IS NULL OR b.LEISURE <= 0 
       THEN 0
       ELSE b.[LEISURE] END AS 'LEISURE'
FROM dbo.TableName

请使用:

而不是给定的代码块
IIF(b.[LEISURE] IS NULL OR b.[LEISURE]<0, 0, b.[LEISURE])

IIF(b.[LEISURE]>=0, b.[LEISURE], 0)

您可以使用 IIF:

SELECT IIF(LEISURE < 0, 0, COALESCE(LEISURE, 0))

如果 LEISURE 为负数,则上面的 IIF 将计算为 0,否则,如果 LEISURENULL,则 COALESCE再次returns0,否则返回正值。

CASE 语句是执行此操作的最佳方法。你可以通过一个比较来完成:

SELECT (CASE WHEN b.leisure > 0 THEN b.leisure ELSE 0 END)

0 相比,NULL 比较的计算结果不为真,因此 NULL 的显式比较并非绝对必要。