我正在使用SQL Server 2014,我对这行代码进行了查询:
ISNULL(b.[LEISURE],0) AS 'LEISURE'
休闲的价值也可能是负值,在这种情况下,我希望价值也显示为0。
如何在我的代码中包装这两个条件?
答案 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
,否则,如果LEISURE
为NULL
,则COALESCE
将返回{ {1}}再次,否则返回正值。