Sql 显示零而不是空
它显示为空,但如果为空,我希望为零。我正在使用varcharSql 显示零而不是空,sql,Sql,它显示为空,但如果为空,我希望为零。我正在使用varchar select DISTINCT(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=1 and Potential.StageID!=8) as 'PipelinePotential',(select Sum(isnull(cast(ExpectedRevenue as float),0) ) fro
select DISTINCT(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=1 and Potential.StageID!=8) as 'PipelinePotential',(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID!=8) as 'Employee PipelinePotential' , (select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=1 and Potential.StageID=8) as 'Achieved' ,
(select Sum(isnull(cast([ExpectedRevenue] as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID=8) as 'EmployeeAchieved' ,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=1) as "TotalTargets " ,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=6) as "EmployeeTotalTargets "
,(Select top 1 target.Target from Target where Target.UserId=1 ORDER BY Target.TargetID desc) as "NewTarget" ,
(Select top 1 target.Target from Target where Target.UserId=6 ORDER BY Target.TargetID desc) as "EmployeeNewTarget" ,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=1 )-(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Target.UserId=1 and Potential.StageID=8) as UnAchieved,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where target.UserId=6 )-(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID=8) as EmployeeUnAchieved,
(select Login.UserName from Login where Login.UserId=1) as AdminUserName ,(select Login.UserName from Login where Login.UserId=6) as EmployeeUserName
from potential inner join [Login] on
potential.UserId=Login.UserId inner join [Target] on
Target.UserId=Login.UserId where Target.UserId=1
预期收入为零,但其显示为空我想解决这个问题在select中使用子查询,如果没有返回记录,它将显示为空,isnull对您没有帮助 使用select and use IsNull包装查询:
select
isnull(x.PipelinePotential, 0) as PipelinePotential,
isnull(x.[Employee PipelinePotential], 0) as 'Employee PipelinePotential'
.... -- rest of your columns from inner query
from
(
-- your huge query here
select DISTINCT(
select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=1 and Potential.StageID!=8) as 'PipelinePotential',
(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID!=8) as 'Employee PipelinePotential',
(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=1 and Potential.StageID=8) as 'Achieved',
(select Sum(isnull(cast([ExpectedRevenue] as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID=8) as 'EmployeeAchieved',
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=1) as "TotalTargets" ,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=6) as "EmployeeTotalTargets",
(Select top 1 target.Target from Target where Target.UserId=1 ORDER BY Target.TargetID desc) as "NewTarget",
(Select top 1 target.Target from Target where Target.UserId=6 ORDER BY Target.TargetID desc) as "EmployeeNewTarget",
(select Sum(isnull(cast([target].[target] as float),0)) from Target where Target.UserId=1 )-(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Target.UserId=1 and Potential.StageID=8) as UnAchieved,
(select Sum(isnull(cast([target].[target] as float),0)) from Target where target.UserId=6 )-(select Sum(isnull(cast(ExpectedRevenue as float),0) ) from Potential where Potential.UserId=6 and Potential.StageID=8) as EmployeeUnAchieved,
(select Login.UserName from Login where Login.UserId=1) as AdminUserName ,(select Login.UserName from Login where Login.UserId=6) as EmployeeUserName
from
potential inner join [Login]
on potential.UserId=Login.UserId
inner join [Target]
on Target.UserId=Login.UserId
where Target.UserId=1
) x
如果它是varchar,您确定它是sql null,而不仅仅是包含字母n
,u
,l
,l
的字符串吗null
和'null'
是两个完全不同的东西。