SQL für SAS-Programmierer - Teil 1 - Extrahieren von Daten
14. April 2009 von: Blink 7Der erste Teil des Tutorials beschäftigt sich mit der Nutzung der PROC SQL-Anweisung zu grundlegenden Datenextraktion durchzuführen. Screenshots der Code und die Ausgabe sind im Preis inbegriffen. Leser, die zusammen mit ihren eigenen Systemen oder den Code können die Dateien unten (rechte Maustaste und wählen "Ziel speichern unter Download bereitgestellte" oder "Link speichern unter") kopieren möchten:
(download) SAS-Code für Tutorial Teil 1
(download) SAS Data: Transaktionen
(download) SAS Data: Zahlungsarten
(download) SAS Data: Mitarbeiter
Hinweis: Dieses Tutorial verwendet SAS Bedingungen und SQL Begriffe synonym. Die folgenden Gruppen der Begriffe sind äquivalent:
- Variable, Spalte
- Data Set, Tisch
Lesen eines Data Set
SQL definiert die SELECT-Befehl, um Daten aus einer vorhandenen Tabelle zu extrahieren. Die FROM-Befehl gibt die Quelltabelle.
Beispiel: Lesen und Ausgabe aller verfügbaren Informationen auf der Shop-Mitarbeiter --

* Mit dem Argument, mit SELECT Befehl wählt automatisch alle verfügbaren Spalten in der Tabelle. Standardmäßig sind keine zusätzlichen PROC PRINT PROC SQL-Ausgänge auf den Bildschirm, so ist erforderlich, um das Ergebnis zu sehen.

Die Ausgabe entspricht das Ergebnis der Verwendung einer SET-Befehl innerhalb einer DATA Schritt ohne bedingte Anweisungen.
Reading bestimmte Variablen aus einem Data Set
Um bestimmte Spalten aus einer Quelle, Tabelle, Liste der Variablen als durch Komma getrennte Argumente Abfrage nach dem SELECT-Befehl
Beispiel: Lesen und Ausgang Vor-und Nachnamen der Mitarbeiter des Geschäfts

In SQL sind Spaltennamen werden durch Komma getrennt aufgelistet, während in der DATA-Schritt Spaltennamen (Variablen) durch Leerzeichen getrennt.

Die Ausgabe entspricht das Ergebnis der Ausgabe festlegen und beibehalten Befehle in einem DATA Schritt.
Filtern ein Data Set
Die WHERE-Befehl kann gefiltert werden einzelne Datensätze aus einer Quelltabelle. Dieser Befehl wird durch ein oder mehrere Argumente folgen abhängig von den Variablen in den Quelldaten basiert gesetzt.
Beispiel: Liste von Mitarbeitern mit den Nachnamen "Wilson"

Die einfachste bedingte Anweisung entspricht einer Spalte zu einer wörtlichen Wert. Numerische Daten können auch verglichen werden mit =, sondern die wörtliche Wert würde nicht in Anführungszeichen gesetzt werden.

Die SQL-WHERE-Befehl hat die gleiche Funktion wie die WHERE in der DATA-Schritt verwendete Befehl
Die WHERE-Befehl ist nicht auf einfache Vergleiche begrenzt. Mehrere Spalten können in einer Zeit bewertet werden.
Beispiel: US-Personal in den Medien-Station mit dem Nachnamen "Wilson"

Die Booleschen Operatoren AND und OR verwendet werden können, sowie Klammer zu schaffen komplizierter bedingte Logik.

Die Ausgabe zeigt, die ein Arbeitnehmer mit dem Nachnamen "Wilson", die funktioniert auch in der Media-Station. Wieder einmal ist der Betrieb von der SQL-WHERE-Befehl identisch mit der WHERE-Anweisung in der DATA-Schritt verwendet.
^ Das Symbol kann verwendet werden, um eine logische Bedingung in einer WHERE-Befehl negieren

Das ^-Symbol auch vor einer offenen Klammern gesetzt werden, um komplizierter bedingte Logik zu negieren.

Die Ausgabe zeigt, jeder Mitarbeiter nicht mit dem Namen "Wilson"
Die Kombination der WHERE-Befehl mit dem IN-Befehl macht es möglich, eine Spalte zu vergleichen, um eine Liste der möglichen Werte.
Beispiel: Liste speichern Mitarbeiter in den Medien oder Computer-Stationen

Das IN-Kommando kann mit jedem gültigen Datentyp (oder auch ein Sub-Abfrage verwendet werden, erzeugen eine Spalte mit Daten), sondern Listen kann nicht mischen Datentypen.

Die Ausgabe listet alle Mitarbeiter in den genannten Stationen.
Einlesen von Daten in ein neues Data Set
So weit, alle Beispiele, die Produktion haben können direkt auf den Bildschirm, die PROC SQL Standardverhalten ist (in SAS EG, geht die Ausgabe auf den Standard-ODS-Ziel). In den meisten Fällen wird das gewünschte Ziel zu einer anderen Tabelle - oft eine ganz neue Tabelle. Um die Ausgabe aus einer SQL-Abfrage Umleitung zu einem neuen Daten festzulegen, verwenden Sie die CREATE TABLE / AS-Syntax zu Beginn der Mitteilung:
Beispiel: Erstellen Sie eine Kopie des Personal-Tabelle

Praktisch jede SQL-Anweisung, die Bildschirmausgabe erzeugt werden kann direkt zu einem anderen Tisch. Um zu vermeiden Slow-Downs, große SQL-Abfragen (zB Abfragen, die Tausende von Zeilen erzeugen) sollte immer ausgegeben werden, um eine neue Daten vor der Anzeige eingestellt.

Keine Ausgabe auf dem Bildschirm erzeugt, sondern eine neue Tabelle ist in der WORK-Verzeichnis enthält eine exakte Kopie der Daten in der Quell-Tabelle erstellt.








