it-swarm.com.de

Anstelle von NULL wie zeige ich "0" im Ergebnis mit SELECT-Anweisung SQL?

Ich habe einen stored procedure, Der mir eine Ausgabe gibt (ich habe ihn in einer #temp-Tabelle gespeichert), und diese Ausgabe gebe ich an einen anderen scalar function Weiter.

Wie zeige ich anstelle von NULL 0 Im Ergebnis der SELECT-Anweisung sql an?

Beispiel: Der gespeicherte Prozess hat eine SELECT-Anweisung wie folgt:

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

Welches gibt mir Ausgabe wie

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

Anstatt nun NULL anzuzeigen, wie kann ich den Preis als 0 Anzeigen?

Was sollte in der SELECT -Anweisung erwähnt werden, um NULL als 0 Zu definieren?

18
Neo

Verwenden Sie coalesce() :

select  coalesce(Eprice, 0) as Eprice

Nur in SQL Server können Sie zwei Zeichen mit isnull() speichern:

select  isnull(Eprice, 0) as Eprice
38
Andomar

Probieren Sie diese drei Alternativen aus:

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

Es gibt einen anderen Weg, der jedoch von den meisten Datenbanken nicht unterstützt wird. SELECT MyColumn + 0 Dies könnte funktionieren, aber NULL + alles ist in T-SQL noch NULL.

8
Ankur Sharma

Versuchen Sie ISNULL(Eprice, 0) anstelle von Eprice

3
TechDo

Sie könnten dies verwenden:

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