Erstellen von SAS-Tabellen unter PROC SQL

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Im SAS-Prozedurschritt PROC SQL gibt es drei Wege, um mit Hilfe von CREATE TABLE eine neue Tabelle zu erstellen.

CREATE TABLE

Mit der Grundform des CREATE TABLE wird eine leere Tabelle anhand explizit genannter Spaltenbeschreibungen erstellt.

LABEL und FORMAT Angaben können mit angegeben werden, sind aber optional. Labelangaben für Spalten können auch ohne LABEL gemacht werden. Die Länge einer Variable wird hinter der Typdefinition angegeben. Wird die Angabe bei Variablen weggelassen, ist die Länge 8. Bei Character-Variablen kann die Längenangabe mit oder ohne Klammern geschrieben werden, bei numerischen Variablen nur ohne Klammern. Beispiel:

 PROC SQL; 
    CREATE TABLE projekt( 
       proj_id   NUM   6         'Projekt' /*Labelangabe ohne LABEL*/      , 
       proj_name CHAR 30 LABEL = 'Projektbezeichnung'                      , 
       start_dat NUM     LABEL = 'Anfang des Projektes' FORMAT = EURDFWDX. , 
       ende_dat  NUM     LABEL = 'Ende des Projektes'   FORMAT = EURDFWDX. , 
       budget    NUM     LABEL = 'Gesamtes Budget'      FORMAT = COMMAX15.0
    ); 
  QUIT; 


CREATE TABLE … LIKE

Durch die Form mit dem ergänzenden Schlüsselwort LIKE wird eine leere Tabelle basierend auf der Struktur (Spalten und Spaltenattributen) einer bereits vorhandenen Tabelle erstellt.

Dabei entfällt gegenüber der oben genannten Grundform die genaue Definition der einzelnen Spalten. Die neu erstellte Tabelle ist eine Kopie der Basistabelle, enthält aber selbst keine Datensätze.

   PROC SQL; 
      CREATE TABLE sql.projekt_kopie LIKE sql.projekt; 
   QUIT; 
   NOTE: Table SQL.PROJEKT_KOPIE created, with 0 rows and 5 columns.


CREATE TABLE … AS

Mit der Form mit dem ergänzenden Schlüsselwort AS wird eine Tabelle aus einer Abfrage erstellt.

Mit diesem Befehl wird eine Tabelle basiered auf der Struktur (Spalten und Spaltenattributen) und Inhalt einer bereits vorhandenen Tabelle bzw. Abfrage erstellt.

   PROC SQL; 
     CREATE TABLE sql.projekt_kopie AS 
        SELECT * 
        FROM sql.projekt; 
   QUIT;
   NOTE: Table SQL.PROJEKT_KOPIE created, with 6 rows and 5 columns.