计算列类型的SQL视图变为可为空

时间:2011-05-21 13:31:05

标签: sql view

我有一个sql表视图,其中一个列是计算的:0.1 * [column_name]其中[column_name]的类型为Decimal而不是NULL

由于某种原因,收到的视野字段变为Decimal NULL

为什么NOT NULL更改为NULL

此致 马里乌什

2 个答案:

答案 0 :(得分:1)

您可以通过将其包装在ISNULL中来强制它返回null:

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。

答案 1 :(得分:0)

您忘记发布代码,但可能是因为左侧或右侧的联接找不到匹配的行...