SQL 服务器计算列(如果值为负则为 0)

SQL Server computed columns (0 if value is negative)

我有一个计算的 SQL 服务器列,其计算方式如下:

Number1 - Number2

如果碰巧这个数学等于一个负数,我想要一个 0 作为字段中的值而不是一个负数

IE:5-10 = -5(显示 0)或仅显示正数。

SELECT 
    CASE 
       WHEN [Scheduled] - [Purchased] < 0 
          THEN 0 
          ELSE [Scheduled] - [Purchased] 
    END

SELECT 
    IIF([Scheduled] - [Purchased] < 0, 0, [Scheduled] - [Purchased])

您必须在此处使用带有 if else 语句的 sql 查询 尝试使用以下语句 或参考 this article

IF value < 0 PRINT '0'  
ELSE PRINT 'value' ;  

为此使用 CASE

SELECT CASE WHEN Scheduled - Purchased < 0 THEN 0 ELSE Scheduled - Purchased END

如果用作计算列,只需写:

CASE WHEN Scheduled - Purchased < 0 THEN 0 ELSE Scheduled - Purchased END

SQL Server 2012以后,还可以使用IIF函数:

SELECT IIF(Scheduled - Purchased < 0, 0, Scheduled - Purchased)