我使用的是SQL Server 2014,我有一个包含以下代码行的查询:
ISNULL(b.[LEISURE],0) AS 'LEISURE'
Leisure的值也可以为负,在这种情况下,我希望该值也显示为0。如何在代码中 Package 这两个条件?
zvokhttg1#
使用CASE表达式..
Case when b.lesure<0 or b.lesure is null then 0 else b.lesure End
toe950272#
您可以改用CASE:
CASE
SELECT CASE WHEN b.LEISURE IS NULL OR b.LEISURE <= 0 THEN 0 ELSE b.[LEISURE] END AS 'LEISURE' FROM dbo.TableName
xggvc2p63#
您可以使用IIF:
IIF
SELECT IIF(LEISURE < 0, 0, COALESCE(LEISURE, 0))
如果LEISURE为负,则上面的IIF将计算为0,否则,如果LEISURE为NULL,则COALESCE再次返回0,否则返回正值。
LEISURE
0
NULL
COALESCE
pkbketx94#
CASE语句是实现此目的的最佳方法。
SELECT (CASE WHEN b.leisure > 0 THEN b.leisure ELSE 0 END)
NULL比较在与0比较时不会评估为true,因此NULL的明确比较不是严格必要的。
nukf8bse5#
使用以下代码块代替给定的代码块:
IIF(b.[LEISURE] IS NULL OR b.[LEISURE]<0, 0, b.[LEISURE])
或
IIF(b.[LEISURE]>=0, b.[LEISURE], 0)
5条答案
按热度按时间zvokhttg1#
使用CASE表达式..
toe950272#
您可以改用
CASE
:xggvc2p63#
您可以使用
IIF
:如果
LEISURE
为负,则上面的IIF
将计算为0
,否则,如果LEISURE
为NULL
,则COALESCE
再次返回0
,否则返回正值。pkbketx94#
CASE
语句是实现此目的的最佳方法。NULL
比较在与0
比较时不会评估为true,因此NULL
的明确比较不是严格必要的。nukf8bse5#
使用以下代码块代替给定的代码块:
或