而不是NULL如何使用SELECT语句sql在结果中显示“0”?

时间:2013-05-21 09:56:44

标签: sql sql-server tsql

我有一个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声明中应该提及NULL0

6 个答案:

答案 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的情况下结束