我有一个sql表视图,其中一个列是计算的:0.1 * [column_name]
其中[column_name]
的类型为Decimal
而不是NULL
。
由于某种原因,收到的视野字段变为Decimal NULL
。
为什么NOT NULL
更改为NULL
?
此致 马里乌什
答案 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)
您忘记发布代码,但可能是因为左侧或右侧的联接找不到匹配的行...