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)
我有一个计算的 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)