Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 从十进制数中减去NULL(SQL Server)?_Sql Server 2008 - Fatal编程技术网

Sql server 2008 从十进制数中减去NULL(SQL Server)?

Sql server 2008 从十进制数中减去NULL(SQL Server)?,sql-server-2008,Sql Server 2008,我有一个疑问: @someDecimal - (select sum(amount) from SomeTable) 我有类似的查询,使用selectsum(amount)fromsometable来计算一些值。问题是,如果SomeTable中没有值,则结果为NULL。现在,每次我使用selectsum(amount)fromsometable来计算某个东西时,我都可以使用ISNULL,但这是一次又一次的重复。我想知道是否有某种方法可以计算一次,如果为空,则将其设置为0,然后使用它。我正在一个

我有一个疑问:

@someDecimal - (select sum(amount) from SomeTable)
我有类似的查询,使用selectsum(amount)fromsometable来计算一些值。问题是,如果SomeTable中没有值,则结果为NULL。现在,每次我使用selectsum(amount)fromsometable来计算某个东西时,我都可以使用ISNULL,但这是一次又一次的重复。我想知道是否有某种方法可以计算一次,如果为空,则将其设置为0,然后使用它。我正在一个区域内进行计算

;WITH MyWithStuff AS (.....)
我正在使用SQLServer2008


谢谢:-)

此行为称为ANSI NULLS,可以使用
将ANSI_NULLS设置为OFF
(或
ON
)来启用或禁用每个连接。下面是SQL BOL,请注意,MS表示,将来不支持将其关闭,因此
ISNULL
COALESCE
是一种方法。

此行为称为ANSI NULLS,可以使用
设置ANSI_NULLS off
(或
ON
)启用或禁用每个连接。下面是SQL BOL,请注意,MS在那里说,将来将不支持将其关闭,因此
ISNULL
COALESCE
是一种方法。

我认为将其设置为关闭不是一个选项。使用ISNULL是可以的,我想知道我是否可以设置一次并多次使用它,以及如何更改使用null作为参数进行操作时的方式,即添加、连接(请参阅我回复中的BOL链接)。它是连接范围的,而不是服务器范围的,并且需要为每个连接显式设置。我认为将其设置为关闭不是一个选项。使用ISNULL是可以的,我想知道我是否可以设置一次并多次使用它,以及如何更改使用null作为参数进行操作时的方式,即添加、连接(请参阅我回复中的BOL链接)。它是连接范围的,而不是服务器范围的,并且需要为每个连接显式设置。您是说所有类似的查询都是单独运行的吗?或者它们是一个大问题的一部分?如果是后者,您可以简单地将结果存储到变量中,并在查询中使用该变量。但这很明显,在你的例子中,它一定是前者……你是说所有类似的查询都是单独运行的吗?或者它们是一个大问题的一部分?如果是后者,您可以简单地将结果存储到变量中,并在查询中使用该变量。但这很明显,在你的情况下,一定是前者。。。