我有在那里计算一列的SQL表视图:0.1 * [column_name]
其中[column_name]
是Decimal
不NULL
类型。SQL视图成为可空
由于某种原因,接收到的视场变为。
为什么NOT NULL
更改为NULL
?
问候 的Mariusz
我有在那里计算一列的SQL表视图:0.1 * [column_name]
其中[column_name]
是Decimal
不NULL
类型。SQL视图成为可空
由于某种原因,接收到的视场变为。
为什么NOT NULL
更改为NULL
?
问候 的Mariusz
你可以迫使它回到是不是由它环绕空在ISNULL中:
create table T (
Value decimal(38,12) not null
)
go
create view V1
as
select 0.1 * Value as Value from T
go
create view V2
as
select ISNULL(0.1 * Value,0) as Value from T
go
V1的值列标记为空,V2不是。奇怪的是,这是一个地方,你不能使用兼容COALESCE
更标准:
create view V3
as
select COALESCE(0.1 * Value,0) as Value from T
go
V3类似V1。
奇怪的情况是,当遇到与DateTime列完全相同的问题时,我遇到了一个奇怪的情况 - 当使用带有GETDATE的ISNULL作为默认值时,DBML仍生成可空的日期时间。我用一个静态日期字符串替换了GETDATE,然后它工作。 – 2012-07-18 15:22:58
你忘记发布您的代码,但它可能是因为左或右联接找不到任何匹配行...
感谢您的回答,但这是一个与精度问题在这里解释http://msdn.microsoft.com/en-us/library/ms190476.aspx – Mariusz 2011-05-21 13:54:18
@aristo - 该网页没有提及NULL ... – 2011-05-21 14:28:12
我们需要看代码。 – Hogan 2011-05-21 13:33:06
准备发布代码,但现在没有意义。下面是我谈论的很好的例子。不管怎么说,还是要谢谢你。 – Mariusz 2011-05-22 20:15:47