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

Neo*_*Neo 19 sql t-sql sql-server

我有一个stored procedure给我一个输出(我将它存储在一个#temp表中),那个输出我传递给另一个scalar function.

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

例如,存储过程具有如下的选择语句:

SELECT Ename , Eid , Eprice , Ecountry from Etable
Where Ecountry = 'India'
Run Code Online (Sandbox Code Playgroud)

哪个给我输出像

Ename    Eid    Eprice    Ecountry
Ana      12     452       India
Bin      33     NULL      India
Cas      11     NULL      India
Run Code Online (Sandbox Code Playgroud)

现在,而不是显示NULL我如何显示价格0

应该是什么提到在SELECT声明中作出NULL0

And*_*mar 40

用途coalesce():

select  coalesce(Eprice, 0) as Eprice
Run Code Online (Sandbox Code Playgroud)

仅在SQL Server中,您可以使用以下命令保存两个字符isnull():

select  isnull(Eprice, 0) as Eprice
Run Code Online (Sandbox Code Playgroud)

  • 也许这应该是`select coalesce(Eprice,0)as Eprice`来保留列名? (2认同)

Ank*_*rma 8

尝试以下三种选择:

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
Run Code Online (Sandbox Code Playgroud)

还有另一种方法,但是大多数数据库都不支持SELECT MyColumn + 0这可能有效,但是在T-SQL中,NULL +任何东西仍然是NULL.