Você está na página 1de 12

PROC SQL;

SELECT CUSTNUM,
ITEM,
UNITS,
UNITCOST,
UNITS * UNITCOST AS TOTAL
FROM PURCHASES
ORDER BY TOTAL;
QUIT;

Creating Column Aliases :

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST * 0.80 AS Discount_Price
FROM PRODUCTS
ORDER BY 3;
QUIT;

Finding Duplicate Values:

PROC SQL;
SELECT DISTINCT MANUNUM
FROM INVENTORY;
QUIT;
Using where :

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST
FROM PRODUCTS
WHERE PRODCOST > 300;
QUIT;

Using AND logical operator:

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST
FROM PRODUCTS
WHERE PRODTYPE = 'Software' AND
PRODCOST > 300;
QUIT;

Using NOT Logical Operator

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST
FROM PRODUCTS
WHERE NOT PRODTYPE = 'Software' AND
NOT PRODCOST > 300;
QUIT;
Using CALCULATED Keyword

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST * 0.80 AS DISCOUNT_PRICE
FORMAT=DOLLAR9.2,
PRODCOST - CALCULATED DISCOUNT_PRICE AS LOSS
FORMAT=DOLLAR7.2
FROM PRODUCTS
ORDER BY 3;
QUIT;

Concatenating Strings Together:

PROC SQL;
SELECT MANUCITY || "," || MANUSTAT as Cnctdstring
FROM MANUFACTURERS;
QUIT;

Finding the length of a string:

PROC SQL;
SELECT PRODNUM,
PRODNAME,
LENGTH(PRODNAME) AS Length
FROM PRODUCTS;
QUIT;
Changing the Case in a String UPCASE

PROC SQL;
SELECT PRODNUM,
PRODNAME,
PRODTYPE
FROM PRODUCTS
WHERE INDEX(UPCASE(PRODNAME), 'PHONE') > 0;
QUIT;

Extracting Information from a String

PROC SQL;
SELECT PRODNUM,
PRODNAME,
PRODTYPE,
SUBSTR(PRODTYPE,1,4) as sbstr
FROM PRODUCTS
WHERE PRODCOST > 100.00;
QUIT;

Working with missing Values:

PROC SQL;
SELECT CUSTNUM,
ITEM,
UNITS,
UNITCOST,
(COALESCE(UNITS, 0) * COALESCE(UNITCOST, 0))
AS Totcost FORMAT=DOLLAR6.2
FROM PURCHASES;
QUIT;
PROC SQL;
SELECT MONOTONIC() AS Row_Number FORMAT=COMMA6.,
ITEM,
UNITS,
UNITCOST
FROM PURCHASES;
QUIT;

PROC SQL;
SELECT COUNT(*) AS Row_Count
FROM PURCHASES;
QUIT;

PROC SQL;
SELECT COUNT(UNITS) AS Row_Count
FROM PURCHASES;
QUIT;

PROC SQL;
SELECT MIN(prodcost) AS Cheapest
Format=dollar9.2 Label='Least Expensive'
FROM PRODUCTS;
QUIT;
PROC SQL;
SELECT SUM((UNITS) * (UNITCOST))
AS Total_Purchases FORMAT=DOLLAR6.2
FROM PURCHASES
WHERE UPCASE(ITEM)='PENS' OR
UPCASE(ITEM)='MARKERS';
QUIT;

PROC SQL;
SELECT AVG(PRODCOST) AS
Average_Product_Cost
FROM PRODUCTS
WHERE UPCASE(PRODTYPE) IN
("SOFTWARE");
QUIT;

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST
FROM PRODUCTS
WHERE PRODCOST BETWEEN 200 AND 500;
QUIT;

PROC SQL;
SELECT
ITEM,
UNITS,
UNITCOST
FROM hari.PURCHASES
WHERE UNITS IS NULL;
QUIT;
PROC SQL;
SELECT PRODNAME
FROM PRODUCTS
WHERE PRODNAME LIKE 'A%';
QUIT;

PROC SQL;
SELECT PRODNAME,
PRODTYPE,
PRODCOST
FROM PRODUCTS
WHERE PRODTYPE LIKE '%Soft%';
QUIT;

PROC SQL NUMBER;


SELECT ITEM,
UNITS,
UNITCOST
FROM PURCHASES;
QUIT;

PROC SQL;
SELECT *
FROM PRODUCTS
ORDER BY prodnum;
QUIT;
PROC SQL;
SELECT prodtype,
prodcost
FROM PRODUCTS
GROUP BY prodtype;
QUIT;

PROC SQL;
SELECT prodtype,
MIN(prodcost) AS Cheapest
Format=dollar9.2 Label='Least Expensive'
FROM PRODUCTS
GROUP BY prodtype;
QUIT;

PROC SQL;
SELECT prodtype,
MIN(prodcost) AS Cheapest
Format=dollar9.2 Label='Least Expensive'
FROM PRODUCTS
GROUP BY prodtype
ORDER BY cheapest;
QUIT;

PROC SQL;
SELECT prodtype,
AVG(prodcost)
FORMAT=DOLLAR9.2 LABEL='Average Product Cost'
FROM PRODUCTS
GROUP BY prodtype
HAVING AVG(prodcost) <= 200.00;
QUIT;
ODS LISTING CLOSE;
ODS html file='d:\file1.html';
PROC SQL;
TITLE1 'Delivering Output to a Data Set';
SELECT prodname, prodtype, prodcost, prodnum
FROM PRODUCTS
ORDER BY prodtype;
QUIT;
ODS html CLOSE;

ODS LISTING CLOSE;


ODS pdf FILE='d:\file2.pdf';
PROC SQL;
TITLE1 'Delivering Output to Rich Text Format';
SELECT prodname, prodtype, prodcost, prodnum
FROM PRODUCTS
ORDER BY prodtype;
QUIT;
ODS pdf CLOSE;
ODS LISTING;

ODS LISTING CLOSE;


ODS HTML BODY='d:\Products-body.html'
CONTENTS='d:\Products-contents.html'
PAGE='d:\Products-page.html'
FRAME='d:\Products-frame.html';
PROC SQL;
TITLE1 'Products List';
SELECT prodname, prodtype, prodcost, prodnum
FROM hari.PRODUCTS
ORDER BY prodtype;
QUIT;
ODS HTML CLOSE;
ODS LISTING;
PROC SQL;
SELECT MANUNAME,
MANUSTAT,
CASE
WHEN MANUSTAT = 'CA' THEN 'West'
WHEN MANUSTAT = 'FL' THEN 'East'
WHEN MANUSTAT = 'TX' THEN 'Central'
ELSE 'Unknown'
END AS Region
FROM MANUFACTURERS;
QUIT;

PROC SQL;
SELECT PRODNAME,
CASE PRODTYPE
WHEN 'Laptop' THEN 'Hardware'
WHEN 'Phone' THEN 'Hardware'
WHEN 'Software' THEN 'Software'
WHEN 'Workstation' THEN 'Hardware'
ELSE 'Unknown'
END AS Product_Classification
FROM PRODUCTS;
QUIT;

%MACRO DUPS(LIB, TABLE, GBY);


PROC SQL;
SELECT &GBY, COUNT(*) AS Duplicate_Rows
FROM &LIB..&TABLE
GROUP BY &GBY
HAVING COUNT(*) > 1;
QUIT;
%MEND DUPS;

%DUPS(SQL,PRODUCTS,PRODTYPE);
PROC SQL;
SELECT prodname, prodcost,
manufacturers.manunum, manuname
FROM PRODUCTS, MANUFACTURERS
WHERE products.manunum =
manufacturers.manunum;
QUIT;

PROC SQL;
SELECT prodname, prodcost,
manufacturers.manunum, manuname
FROM PRODUCTS, MANUFACTURERS
WHERE products.manunum =
manufacturers.manunum AND
products.manunum = 500;
QUIT;

PROC SQL;
SELECT DISTINCT SUM(prodcost) AS Total_Cost,
manufacturers.manunum
FROM PRODUCTS, MANUFACTURERS
WHERE products.manunum =
manufacturers.manunum AND
manufacturers.manuname = 'KPL Enterprises';
QUIT;
PROC SQL;
SELECT prodnum, prodname, prodtype, M.manunum
FROM PRODUCTS P, MANUFACTURERS M
WHERE P.manunum = M.manunum AND
M.manuname = 'Global Software';
QUIT;

PROC SQL;
SELECT *
FROM INVOICE
WHERE manunum =
(SELECT manunum
FROM MANUFACTURERS
WHERE manuname = 'Global Comm Corp');
QUIT;

PROC SQL;
SELECT *
FROM INVOICE
WHERE prodnum =
(SELECT prodnum
FROM PRODUCTS
WHERE prodname LIKE 'Dream%');
QUIT;

PROC SQL;
SELECT *
FROM INVOICE
WHERE manunum IN
(SELECT manunum
FROM MANUFACTURERS
WHERE UPCASE(manucity) LIKE 'SAN DIEGO%');
QUIT;

Você também pode gostar