[英]If value return the value. If a record not exists or when column is null, return 0 in Sql Server - different ways
如果没有记录或者Column1
为null,我想返回0
。
select @var = Column1
from myschema.mytable
where Id = @suppliedId;
select isnull(@var, 0);
如果Column1
为null,则上面的代码输出0
。 或者如果找不到行
虽然我试图保存一些按键,但结果是,
select isnull(Column1, 0)
from myschema.mytable
where Id = @suppliedId;
如果Column1
为null或没有行,则上面的代码输出null
任何想法在这里有什么不对? 或者有没有更短的方式来编写第一个代码?
你可以做
SELECT @var = ISNULL(MAX(Column1), 0)
FROM myschema.mytable
WHERE Id = @suppliedId;
即使基础查询返回零行,标量聚合也始终返回单行。
不是真的保存击键,但这样的事情可以帮助:-)
SELECT TOP 1 tbl.field
FROM
(
SELECT 0 AS inx, 'no record' AS field
--if only one row is possible, than set '1' literally
UNION SELECT ROW_NUMBER() OVER(ORDER BY mytable.orderfield), ISNULL(mytable.Land,'is null')
FROM mytable
WHERE IDENTITY = @suppliedID
) AS tbl
ORDER BY tbl.inx DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.