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

puruo6ea  于 2022-11-28  发布在  其他
关注(0)|答案(5)|浏览(278)

我使用的是SQL Server 2014,我有一个包含以下代码行的查询:

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

Leisure的值也可以为负,在这种情况下,我希望该值也显示为0。
如何在代码中 Package 这两个条件?

zvokhttg

zvokhttg1#

使用CASE表达式..

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

toe950272#

您可以改用CASE

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

xggvc2p63#

您可以使用IIF

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

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

pkbketx9

pkbketx94#

CASE语句是实现此目的的最佳方法。

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

NULL比较在与0比较时不会评估为true,因此NULL的明确比较不是严格必要的。

nukf8bse

nukf8bse5#

使用以下代码块代替给定的代码块:

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

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

相关问题