我有在那裏計算一列的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