Chapter 7
SQL Procedure
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
What Is the SQL Procedure? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
What Are PROC SQL Tables? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
What Are Views? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
SQL Procedure Coding Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Threaded Processing Using PROC SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Syntax: SQL Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
PROC SQL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
ALTER TABLE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
CONNECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
CREATE INDEX Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
CREATE TABLE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
CREATE VIEW Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
DELETE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
DESCRIBE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
DISCONNECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
DROP Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
EXECUTE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
INSERT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
RESET Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
SELECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
UPDATE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
VALIDATE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Examples: SQL Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Example 1: Creating a Table and Inserting Data into It . . . . . . . . . . . . . . . . . . . . . 269
Example 2: Creating a Table from a Query's Result . . . . . . . . . . . . . . . . . . . . . . . . 271
Example 3: Updating Data in a PROC SQL Table . . . . . . . . . . . . . . . . . . . . . . . . . 273
Example 4: Joining Two Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Example 5: Combining Two Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Example 6: Reporting from DICTIONARY Tables . . . . . . . . . . . . . . . . . . . . . . . . 281
Example 7: Performing an Outer Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Example 8: Creating a View from a Query’s Result . . . . . . . . . . . . . . . . . . . . . . . . 289
Example 9: Joining Three Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Example 10: Querying an In-Line View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Example 11: Retrieving Values with the SOUNDS-LIKE Operator . . . . . . . . . . . 298
Example 12: Joining Two Tables and Calculating a New Value . . . . . . . . . . . . . . 301
Example 13: Producing All the Possible Combinations of the
Values in a Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Example 14: Matching Case Rows and Control Rows . . . . . . . . . . . . . . . . . . . . . . 309
Example 15: Counting Missing Values with a SAS Macro . . . . . . . . . . . . . . . . . . 312
215

Get SAS 9.4 SQL Procedure User's Guide, Fourth Edition, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.