Alle Werte in einer Tabelle auf NULL (MISSING) setzen

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.

Struktur mit leeren Zeilen

Hallo,

das geht auch.

DATA Struktur_mit_Zeilen;
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:

data StrukturMitDaten;
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.

Proc 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