SQL voor SAS Programmeurs - Deel 1 - Extracting Data
14 april 2009 door: Blink 7Het eerste deel van deze tutorial gaat over het gebruik van de PROC SQL statement naar basisgegevens extractie uit te voeren. Screenshots van de code en de output zijn inbegrepen. Lezers die willen om mee te volgen op hun eigen systemen of de code kan downloaden van de bestanden hieronder (klik met de rechtermuisknop en selecteer "opslaan als" of "Link opslaan als") exemplaar:
(download) SAS-code voor Tutorial deel 1
(download) SAS Data: Transacties
(download) SAS Data: Betalingswijzen
(download) SAS Data: Personeel
Opmerking: Deze handleiding maakt gebruik van SAS termen en SQL termen door elkaar. De volgende sets van termen zijn equivalent:
- Variabele kolom
- Data set, tafel
Lezen van een Data Set
SQL SELECT commando definieert de gegevens uit een bestaande tabel. De UIT commando geeft de bron tafel.
Voorbeeld: Lees en uitgang van alle beschikbare informatie over de winkel personeel --

Met behulp van de * argument met SELECT commando selecteert automatisch alle beschikbare kolommen in de tabel. Standaard geen extra PROC PRINT PROC SQL-uitgangen aan het scherm, zo nodig is om het resultaat.

De output is gelijk aan het resultaat van het gebruik van een SET-commando in een DATA stap zonder voorwaardelijke verklaringen.
Reading specifieke variabelen van een Data Set
Om specifieke kolommen query uit een bron tafel, een lijst van de variabelen als door komma's gescheiden argumenten na het SELECT commando
Voorbeeld: Lees en uitgang van de eerste en de laatste namen van de winkel personeel

In SQL, kolom zijn de namen zijn vermeld, gescheiden door komma's, terwijl in het DATA stap kolomnamen (variabelen), gescheiden door spaties.

De output is gelijk aan het resultaat van de afgifte van SET en KEEP opdrachten binnen een DATA stap.
Filteren van een Data Set
De WANNEER commando kan worden gebruikt voor het filteren van individuele records uit een bron tafel. Deze opdracht wordt gevolgd door een of meer afhankelijk argumenten op basis van de variabelen beschikbaar in de bron van gegevens.
Voorbeeld: Lijst personeel met de achternaam "Wilson"

De eenvoudigste verklaring voorwaardelijke wedstrijden een kolom om een letterlijke waarde. Numerieke gegevens kunnen ook worden vergeleken met behulp van = maar de letterlijke waarde zou niet tussen aanhalingstekens.

De SQL-functies WAAR opdracht op dezelfde manier als de WHERE commando gebruikt in het DATA stap
WAAR De opdracht is niet beperkt tot eenvoudige vergelijkingen. Meerdere kolommen kunnen worden geƫvalueerd op een tijdstip.
Voorbeeld: Lijst personeel in de media station met de laatste naam "Wilson"

De Booleaanse operatoren AND en OR kunnen gebruikt worden, evenals haakjes om meer gecompliceerde voorwaardelijke logica.

De output geeft het een werknemer met de laatste naam "Wilson" die ook werkt in de Media station. Nogmaals, de werking van de SQL-commando WHERE identiek aan de WHERE verklaring gebruikt in het DATA stap.
Het symbool ^ kan gebruikt worden om een logische voorwaarde ontkennen binnen een WHERE-opdracht

Het symbool ^ ook worden geplaatst voor een open haakjes ontkennen ingewikkelder voorwaardelijke logica.

De output toont iedere werknemer niet met de naam "Wilson"
Combineren van de WHERE commando met de IN-commando maakt het mogelijk te vergelijken een kolom aan een lijst van mogelijke waarden.
Voorbeeld: Lijst opslaan werknemers in de media of Computer-stations

De IN commando kan gebruikt worden met elke geldige data type (of zelfs een sub-query de productie van een kolom van de gegevens), maar lijsten kunnen niet mengen data types.

De output geeft alle werknemers in de genoemde stations.
Lezen van gegevens in een nieuwe Data Set
Tot dusver alle voorbeelden uitgang rechtstreeks op het scherm, dat is standaard PROC SQL gedrag (in SAS EG, de uitvoer gaat naar de standaard ODS bestemming). In de meeste gevallen zal de gewenste doelgroep een andere tafel - vaak een nieuwe tabel. Om de uitgang van de omleiding van een SQL-query op een reeks nieuwe gegevens, gebruik van de CREATE TABLE / AS syntaxis aan het begin van de verklaring:
Voorbeeld: Maak een duplicaat van het personeel tafel

Vrijwel alle SQL-statement dat scherm output produceert, worden rechtstreeks aan de uitgang van een andere tabel. Om systeem te voorkomen slow-downs, grote SQL queries (bijv. zoekopdrachten die produceren duizenden lijnen) moet altijd worden uitgevoerd om een nieuwe dataset voor bezichtiging.

Geen output wordt geproduceerd op het scherm, maar een nieuwe tafel is gemaakt in de WORK map, met daarin een exacte replica van de gegevens in de bron tabel.








