我有一个stored procedure
给了我一个输出(我将它存储在#temp表中),那个输出我传递给另一个scalar function
。
而不是NULL如何在SELECT语句sql中显示
0
结果?
例如,存储过程具有如下所示的选择语句:
SELECT Ename , Eid , Eprice , Ecountry from Etable
Where Ecountry = 'India'
这给我输出像
Ename Eid Eprice Ecountry
Ana 12 452 India
Bin 33 NULL India
Cas 11 NULL India
现在,我不是显示NULL
,而是如何将价格显示为0
?
在SELECT
声明中应该提及NULL
为0
?
答案 0 :(得分:36)
使用coalesce()
:
select coalesce(Eprice, 0) as Eprice
仅在SQL Server中,您可以使用isnull()
保存两个字符:
select isnull(Eprice, 0) as Eprice
答案 1 :(得分:7)
尝试以下三种选择:
1. ISNULL(MyColumn, 0)
2. SELECT CASE WHEN MyColumn IS NULL THEN 0 ELSE MyColumn END FROM MyTable
3. SELECT COALESCE(MyCoumn, 0) FROM MyTable
还有另一种方法,但大多数数据库都不支持它 SELECT MyColumn + 0 这可能有效,但在T-SQL中,NULL +的任何内容仍为NULL。
答案 2 :(得分:3)
尝试使用ISNULL(Eprice, 0)
代替Eprice
答案 3 :(得分:3)
你可以用这个:
SELECT Ename , Eid , ISNULL(Eprice, 0) as Eprice, Ecountry from Etable
Where Ecountry = 'India'
答案 4 :(得分:0)
另一个区别是,如果您将“ Null或Empty”字符串的值为0,请使用结盟:
select isnull('', 0) as result => ''
select coalesce('', 0) as result => 0
两者都返回0表示空值
select isnull(null, 0) as result => 0
select coalesce(null, 0) as result => 0
答案 5 :(得分:0)
价格为空的情况下,然后价格为0的情况下结束