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链接)。它是连接范围的,而不是服务器范围的,并且需要为每个连接显式设置。您是说所有类似的查询都是单独运行的吗?或者它们是一个大问题的一部分?如果是后者,您可以简单地将结果存储到变量中,并在查询中使用该变量。但这很明显,在你的例子中,它一定是前者……你是说所有类似的查询都是单独运行的吗?或者它们是一个大问题的一部分?如果是后者,您可以简单地将结果存储到变量中,并在查询中使用该变量。但这很明显,在你的情况下,一定是前者。。。