我有一个Product表,其中包含非空的“quantity”(十进制)和“status”(整数)列,并且我在此表上创建了一个视图,其中包含以下情况表达式:
SELECT P.ProductTypeId,
(CASE WHEN P.StatusId IN (5, 8) THEN 0 ELSE -P.Quantity END) AS Quantity,
...
FROM Product P
ProductTypeId被正确地推断为非空。然而,这个视图的Quantity列被推断为可空,尽管底层列不可空。我觉得这毫无意义。
我可以使用ISNULL/COALESCE在这种情况下提供默认值并强制非空性,但是在这种情况下没有有意义的默认值,而且从我的理解来看,这本应该不会发生。有什么想法吗?