将SQL列空值转换为0

时间:2012-12-05 15:12:14

标签: sql sql-server database

我是SQL Server的新手,我遇到了问题。

我有这个观点,其中允许公式中的某些列为空。

如何将这些空值转换为0,因为如果它们为null,则公式的结果也为空。

谢谢!

CREATE VIEW vwAchizitii
AS
    SELECT
            ac_id
           ,[Company]
           ,No
           ,[ContractID]
           ,[Seller]
           ,[AcquistionDate]
           ,[Village]
           ,[Commune]
           ,[Area]
           ,[PlotArea]
           ,[FieldNo]
           ,[Topo1]
           ,[Topo2]
           ,[Topo3]
           ,[Topo4]
           ,[Topo5]
           ,[TotalAreaSqm]
           ,[OwnershipTitle]
           ,[CadastralNO]
           ,[Type]
           ,[Price]
           ,[NotaryCosts]
           ,[LandTax]
           ,[OtherTaxes]
           ,[AgentFee]
           ,[CadastralFee]
           ,[TabulationFee]
           ,[CertSarcini]
           ,[ProcuraNO]
           ,(price+notarycosts+landtax+othertaxes+agentfee+cadastralfee+tabulationfee+certsarcini) as TotalCosts
           ,(price+notarycosts+landtax+othertaxes+agentfee+cadastralfee+tabulationfee+certsarcini)/(TotalAreaSqm/10000) as RonPerHa
           ,(price+notarycosts+landtax+othertaxes+agentfee+cadastralfee+tabulationfee+certsarcini)/(TotalAreaSqm/10000*FixHist) as EurPerHa
           ,[DeclImpunere]
           ,[FixHist]
           ,(price+notarycosts+landtax+othertaxes+agentfee+cadastralfee+tabulationfee+certsarcini)/FixHist as EurHist
           ,[LandStatus]
FROM      
   nbAchizitii

3 个答案:

答案 0 :(得分:10)

嗯,有人应该对ANSI标准说一句话:

coalesce(<column>, 0)

isNULL特定于数据库(甚至在某些数据库中也有不同的东西)。

答案 1 :(得分:7)

您可以使用ISNULL (Transact-SQL)

例如

(isnull(price,0)+isnull(notarycosts,0)) as Total

答案 2 :(得分:5)

试试这个:

ISNULL([nullable field], 0)