繁体   English   中英

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语句是执行此操作的最佳方法。 您可以做一个比较:

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

0相比, NULL比较的结果不为true,因此对NULL进行显式比较不是严格必需的。

代替您给定的代码块,请使用:

IIF(b.[LEISURE] IS NULL OR b.[LEISURE]<0, 0, b.[LEISURE])

要么

IIF(b.[LEISURE]>=0, b.[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

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

如果LEISURE为负,则上述IIF将求值为0 ,否则,如果LEISURENULL ,则COALESCE再次返回0 ,否则返回正值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM