首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将视图中的计算列定义为null

将视图中的计算列定义为null
EN

Stack Overflow用户
提问于 2011-09-25 17:25:20
回答 1查看 1.3K关注 0票数 0

我有一个计算列的视图,现在我需要强制计算列为"not null“来表示光开关。

我尝试过cast(),但我仍然不能使计算列成为"not null“,可以吗?

这是我的SQL:

代码语言:javascript
运行
复制
SELECT dbo.Nop_Manufacturer.Name,
       CAST(SUM(dbo.Nop_OrderProductVariant.PriceExclTax) AS INT)           AS
       SALES,
       CAST(MONTH(dbo.Nop_Order.PaidDate) AS INT)                           AS
       paid_month,
       CAST(YEAR(dbo.Nop_Order.PaidDate) AS INT)                            AS
       paid_year,
       CAST(COUNT(dbo.Nop_OrderProductVariant.OrderProductVariantID) AS INT)AS
       num_prod_sold
FROM   dbo.Nop_ProductVariant
       INNER JOIN dbo.Nop_OrderProductVariant
         ON dbo.Nop_ProductVariant.ProductVariantId =
            dbo.Nop_OrderProductVariant.ProductVariantID
       INNER JOIN dbo.Nop_Product
         ON dbo.Nop_ProductVariant.ProductID = dbo.Nop_Product.ProductId
       INNER JOIN dbo.Nop_Product_Manufacturer_Mapping
                  INNER JOIN dbo.Nop_Manufacturer
                    ON dbo.Nop_Product_Manufacturer_Mapping.ManufacturerID =
                       dbo.Nop_Manufacturer.ManufacturerID
         ON dbo.Nop_Product.ProductId =
            dbo.Nop_Product_Manufacturer_Mapping.ProductID
       INNER JOIN dbo.Nop_Order
         ON dbo.Nop_OrderProductVariant.OrderID = dbo.Nop_Order.OrderID
WHERE  ( NOT ( dbo.Nop_Order.PaidDate IS NULL ) )
GROUP  BY dbo.Nop_Manufacturer.Name,
          MONTH(dbo.Nop_Order.PaidDate),
          YEAR(dbo.Nop_Order.PaidDate)  
EN

回答 1

Stack Overflow用户

发布于 2011-09-25 18:19:43

CAST-ing as INT不会做任何事情来影响所感知的计算列的空性。您需要将它们包装在ISNULL中而不是。

例如ISNULL(YEAR(dbo.Nop_Order.PaidDate),0)

这在最后一段中有记录。

数据库引擎根据使用的表达式自动确定计算列的空值。大多数表达式的结果被认为是可空的,即使只有非空列存在,因为可能的潜流或溢出也会产生空结果。使用带有COLUMNPROPERTY属性的AllowsNull函数来研究表中任何计算列的空性。可以通过指定ISNULL(check_expression, constant)将可空表达式转换为非空表达式,其中常量是替换任何空结果的非空值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7547217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档