Alle Werte in einer Tabelle auf NULL (MISSING) setzen
Verfasst von bezNika am 15 Mai, 2009 - 09:53
Hallo,
gibt es eine Möglichkeit, alle Werte in einer Tabelle auf NULL zu setzen, ohne dass man jede Variable auflistet?
Der Hintergrund ist folgender:
ich muss von einer Tabelle nur die Struktur kopieren, ohne der darin stehenden Daten. D.h. Spaltennamen, Format etc. müssen kopiert werden, alle Einträge jedoch müssen auf Null gesetzt werden.
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Struktur mit leeren Zeilen
Hallo,
das geht auch.
SET Quelle;
ARRAY T _CHARACTER_;
ARRAY Z _NUMERIC_;
DO OVER T;
T="";
END;
DO OVER Z;
Z=.;
END;
RUN;
Schöne Grüße
Jan
Struktur kopieren ...
Hallo,
... geht ganz einfach z.B. so:
Text='Text, Zeile 2';
Zahl1=11;
Zahl2=12;
output;
Text='Text, Zeile 2';
Zahl1=21;
Zahl2=22;
output;
run;
data Struktur;
set StrukturMitDaten(obs=0);
run;
Trifft das Ihr Problem, oder haben Sie etwas anderes gemeint?
Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)
Hallo, besser wäre es, wenn
Hallo,
besser wäre es, wenn die Tabelle mit allen vorhandenen Zeilen eingelesen wird, nur halt mit MISSING in jedem Feld.
Sorry, es ist schon richtig,
Sorry, es ist schon richtig, wie Sie es gemacht haben, vielen Dank! :-)
Ich muss das aber auf zwei unterschiedliche Weisen lösen. Mit proc datasets, zum Beispiel, und mit proc sql.
SQL-Lösung
Hallo,
es geht auch mit SQL.
CREATE TABLE MISS LIKE StrukturMitDaten;
CREATE TABLE StrukturMitLeerenZeilen AS
SELECT T2.*
FROM StrukturMitDaten AS T1
LEFT JOIN MISS AS T2
ON 1 = 1
;
QUIT;
Schöne Grüße
Jan
DANKE!!! es funktioniert
DANKE!!!
es funktioniert auch! :)
weiß vielleicht jemand, wie es mit datasets und mit proc copy geht?
Wozu dient denn das Ganze?
Ich frage mich schon ein bisschen, wozu das Ganze dienen soll.
Wozu soll der Mechano denn auch mit proc datasets und mit proc copy laufen können?
Und wozu sollen x leere Datensätze dienen, wenn die Grundstruktur schon im ersten Datensatz vorhanden ist?
Wenn es wirklich x leere Datensätze sein müssen, dann müssten diese Datensätze doch immerhin ein Schlüsselfeld aufweisen, das die x Datensätze, auch wenn sie sonst leer sind, voneinander unterscheidet.
Die Begründung zu einer Frage sollte schon als konkrete Businessfragestellung formuliert sein, nicht als technische Anforderung wie "ich muss einfach x leere Datensätze haben".
Sonst kann man als Leser des Streams nur lange rätseln, worum es wohl geht. Und kommt sich ein bisschen veräppelt vor.
Freundliche Grüsse
Koni (Konrad) Kreis