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

时间:2016-07-04 13:19:19

标签: sql-server tsql null zero negative-number

我正在使用SQL Server 2014,我对这行代码进行了查询:

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

休闲的价值也可能是负值,在这种情况下,我希望价值也显示为0。

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

5 个答案:

答案 0 :(得分:3)

CASE语句是执行此操作的最佳方式。你可以通过一次比较来做到这一点:

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

NULL相比,0比较的评估结果为真,因此明确比较NULL并非绝对必要。

答案 1 :(得分:1)

使用CASE Expression ..

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

答案 2 :(得分:1)

您可以改为使用CASE

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

答案 3 :(得分:1)

使用:

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

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

答案 4 :(得分:0)

您可以使用IIF

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

如果LEISURE为否定,则上述IIF将评估为0,否则,如果LEISURENULL,则COALESCE将返回{ {1}}再次,否则返回正值。