[英]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
,否则,如果LEISURE
为NULL
,则COALESCE
再次返回0
,否则返回正值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.