2013-05-21 47 views
14

我有一個stored procedure這是給我一個輸出(我把它存儲在一個#temp表中),並且我輸出到另一個scalar function而不是NULL如何在SELECT語句sql的結果中顯示'0'?

而不是NULL如何在結果中顯示0 SELECT語句sql?

例如存儲過程是有Select語句,如follwing:

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

回答

29

使用coalesce()

select coalesce(Eprice, 0) as Eprice 

在SQL Server只,你可以節省兩個字符與isnull()

select isnull(Eprice, 0) as Eprice 
+2

也許這應該是'選擇coalesce(Eprice,0)作爲Eprice'來保存列名? –

+0

@ EdHarper:當然,好主意。 @ashuthinks:兩者工作相同。 'coalesce()'可以在SQL Server以外的其他數據庫中工作。 – Andomar

+0

嗨,謝謝哪個更好用1. coalesce(Eprice,0)'2. isnull(Eprice,0) – Neo

3

嘗試ISNULL(Eprice, 0)代替Eprice

3

您可以使用此:

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

+1 [Two](http://en.wikipedia.org/wiki/Boeing_707)[飛機](http://en.wikipedia.org/wiki/Boeing_727)在你的用戶名lol – Andomar

+0

哦,是啊..和我正在考慮改變它^^ – user707727

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 這可能會實現,但NULL +什麼仍然是NULL在T- SQL。

相關問題