| Programming with the SQL Procedure |
SQL provides limited output formatting capabilities. Some SQL vendors add output formatting statements to their products to address these limitations. SAS has reporting tools that enhance the appearance of PROC SQL output.
For example, SQL cannot display only the first occurrence of a repeating value in a column in its output. The following example lists cities in the USCITYCOORDS table. Notice the repeating values in the State column.
proc sql outobs=10; title 'US Cities'; select State, City, latitude, Longitude from sql.uscitycoords order by state;
USCITYCOORDS Table Showing Repeating State Values
. . . US Cities
State City Latitude Longitude
----------------------------------------------
AK Sitka 57 -135
AK Anchorage 61 -150
AK Nome 64 -165
AK Juneau 58 -134
AL Mobile 31 -88
AL Montgomery 32 -86
AL Birmingham 33 -87
AR Hot Springs 34 -93
AR Little Rock 35 -92
AZ Flagstaff 35 -112
The following code uses PROC REPORT to format the output so that the state codes appear only once for each state group. A WHERE clause subsets the data so that the report lists the coordinates of cities in Pacific Rim states only. For more information about PROC REPORT, see the Base SAS Procedures Guide.
proc sql noprint; create table sql.cityreport as select * from sql.uscitycoords group by state; proc report data=sql.cityreport headline headskip; title 'Coordinates of U.S. Cities in Pacific Rim States'; column state city ('Coordinates' latitude longitude); define state / order format=$2. width=5 'State'; define city / order format=$15. width=15 'City'; define latitude / display format=4. width=8 'Latitude'; define longitude / display format=4. width=9 'Longitude'; where state='AK' or state='HI' or state='WA' or state='OR' or state='CA'; run;
PROC REPORT Output Showing the First Occurrence Only of Each State Value
Coordinates of U.S. Cities in Pacific Rim States
Coordinates
State City Latitude Longitude
-------------------------------------------
AK Anchorage 61 -150
Juneau 58 -134
Nome 64 -165
Sitka 57 -135
CA El Centro 32 -115
Fresno 37 -120
Long Beach 34 -118
Los Angeles 34 -118
Oakland 38 -122
Sacramento 38 -121
San Diego 33 -117
San Francisco 38 -122
San Jose 37 -122
HI Honolulu 21 -158
OR Baker 45 -118
Eugene 44 -124
Klamath Falls 42 -122
Portland 45 -123
Salem 45 -123
WA Olympia 47 -123
Seattle 47 -122
Spokane 48 -117
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.