Instead of NULL how do I show `0` in result with S

2019-01-14 07:15发布

问题:

I have one stored procedure which is giving me an output (I stored it in a #temp table) and that output I'm passing to another scalar function.

Instead of NULL how do I show 0 in result with SELECT statement sql?

For example stored proc is having select statement like follwing :

SELECT Ename , Eid , Eprice , Ecountry from Etable
Where Ecountry = 'India'

Which is giving me output like

Ename    Eid    Eprice    Ecountry
Ana      12     452       India
Bin      33     NULL      India
Cas      11     NULL      India

Now instead of showing NULL how can I show price as 0 ?

What should be mention in SELECT statement to make NULL as 0 ?

回答1:

Use coalesce():

select  coalesce(Eprice, 0) as Eprice

In SQL Server only, you can save two characters with isnull():

select  isnull(Eprice, 0) as Eprice


回答2:

Try these three alternatives:

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

There is another way but it is not supported by most of the databases SELECT MyColumn + 0 This might work, but NULL + anything is still NULL in T-SQL.



回答3:

Try ISNULL(Eprice, 0) instead of Eprice



回答4:

You could use this:

SELECT Ename , Eid , ISNULL(Eprice, 0) as Eprice, Ecountry from Etable
Where Ecountry = 'India'