Frage

Gibt es ein Äquivalent der Funktion Oracle NVL in SAS?

Zum Beispiel, wenn ich eine where-Klausel in SAS, der sagt:

where myVar > -2;

es geht um nicht alle Zeilen, die haben myVar =.

Wenn ich Werte als Null behandeln wollen fehlt, muss ich sagen:

where myVar > -2 or missing( myVar )

Ich möchte in der Lage sein zu tun, so etwas wie:

where NVL( myVar, 0 ) > -2 // or some SAS equivalent

Gibt es so etwas wie dies in SAS?

War es hilfreich?

Lösung

Die coalesce Funktion sollten die Arbeit machen.

where coalesce(myVar,0) > -2

Ich bin mir nicht sicher, ob die Funktion in SAS 9 verfügbar wurde, wenn Sie also eine wirklich alte SAS Version haben diese möglicherweise nicht.

Andere Tipps

Mit der coalesce Funktion ist der richtige Weg, dies zu tun.

Aber wenn Sie eine alte Version von SAS, wo coalesce nicht implementiert ist, können Sie diesen Trick verwenden:

where sum(myVar,0) > -2

Wenn Sie die Funktion sum in SAS für das Hinzufügen, alle nicht fehlende Zahl in der Summe wird das Ergebnis zwingt nicht zu fehlen.

So 0 mit der Summenfunktion wird das Hinzufügen eines fehlenden Wert auf 0 zu transformieren und nicht-fehlenden Werte bleiben unverändert.

Eine Sache, die y tun kann, ist, mögen Array varlistname var1 var2 var3 Varn; wenn Array <>. dann ausgegeben;

Es wird Datensätze mit nicht fehlenden Werte ouput

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top