/* In-class examples, 9/16/02 Advanced SQL/Sybase */ /* */ 1> use pubs2 2> go /* */ /* Use of ceiling() and floor() to obtain next higher or lower */ /* whole number. */ /* */ 1> select price, ceiling(price), floor(price) 2> from titles 3> where price between 2 and 15 4> go price ------------------------ ------------------------ ------------------------ 11.95 12.00 11.00 2.99 3.00 2.00 2.99 3.00 2.00 10.95 11.00 10.00 7.00 7.00 7.00 7.99 8.00 7.00 11.95 12.00 11.00 14.99 15.00 14.00 (8 rows affected) /* */ /* Examples of rounding with significant figures kept before */ /* or after the decimal point. */ /* */ 1> select price, round(price, 1) pos, round(price, -1) neg 2> from titles 3> where price between 2 and 15 4> go price pos neg ------------------------ ------------------------ ------------------------ 11.95 12.00 10.00 2.99 3.00 0.00 2.99 3.00 0.00 10.95 11.00 10.00 7.00 7.00 10.00 7.99 8.00 10.00 11.95 12.00 10.00 14.99 15.00 10.00 (8 rows affected) /* */ /* Use of convert function to convert numeric to money */ /* */ 1> select avg(price) from titles 2> go ------------------------ 14.77 (1 row affected) 1> select avg(price*0.95) from titles 2> go ---------------------------------------------------- 14.02793750000000000 (1 row affected) 1> select convert(money, avg(price*0.95)) from titles 2> go ------------------------ 14.03 (1 row affected) /* */ /* Find actual length of titles and convert to fit on line. */ /* */ 1> select title_id, title from titles 2> go title_id title -------- -------------------------------------------------------------------------------- BU1032 The Busy Executive's Database Guide BU1111 Cooking with Computers: Surreptitious Balance Sheets BU2075 You Can Combat Computer Stress! BU7832 Straight Talk About Computers MC2222 Silicon Valley Gastronomic Treats MC3021 The Gourmet Microwave MC3026 The Psychology of Computer Cooking PC1035 But Is It User Friendly? PC8888 Secrets of Silicon Valley PC9999 Net Etiquette PS1372 Computer Phobic and Non-Phobic Individuals: Behavior Variations PS2091 Is Anger the Enemy? PS2106 Life Without Fear PS3333 Prolonged Data Deprivation: Four Case Studies PS7777 Emotional Security: A New Algorithm TC3218 Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean TC4203 Fifty Years in Buckingham Palace Kitchens TC7777 Sushi, Anyone? (18 rows affected) 1> select title_id, char_length(title) length from titles 2> go title_id length -------- ----------- BU1032 35 BU1111 52 BU2075 31 BU7832 29 MC2222 33 MC3021 21 MC3026 34 PC1035 24 PC8888 25 PC9999 13 PS1372 63 PS2091 19 PS2106 17 PS3333 45 PS7777 35 TC3218 63 TC4203 41 TC7777 14 (18 rows affected) 1> select col_length("titles", "title") 2> go --- 80 (1 row affected) 1> select convert(char(64), title) ShortenedTitle from titles 2> go ShortenedTitle ---------------------------------------------------------------- But Is It User Friendly? Computer Phobic and Non-Phobic Individuals: Behavior Variations Cooking with Computers: Surreptitious Balance Sheets Emotional Security: A New Algorithm Fifty Years in Buckingham Palace Kitchens Is Anger the Enemy? Life Without Fear Net Etiquette Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean Prolonged Data Deprivation: Four Case Studies Secrets of Silicon Valley Silicon Valley Gastronomic Treats Straight Talk About Computers Sushi, Anyone? The Busy Executive's Database Guide The Gourmet Microwave The Psychology of Computer Cooking You Can Combat Computer Stress! (18 rows affected) /* */ /* Find position of the letter x in notes field. */ /* */ 1> select patindex("%x%", notes), title_id from titles 2> go title_id ----------- -------- 0 BU1032 0 BU1111 109 BU2075 0 BU7832 0 MC2222 0 MC3021 0 MC3026 0 PC1035 0 PC8888 0 PC9999 39 PS1372 0 PS2091 6 PS2106 0 PS3333 0 PS7777 0 TC3218 0 TC4203 0 TC7777 (18 rows affected) /* */ /* Find the x in notes where patindex returned value > 0 */ /* */ 1> select notes from titles 2> where title_id = 'BU2075' or title_id = 'PS1372' 3> go notes -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The latest medical and psychological techniques for living with the electronic office. Easy-to-understand explanations. A must for the specialist, this book examines the difference between those who hate and fear computers and those who think they are swell. (2 rows affected) /* */ /* Use substring() to see all of long note. */ /* */ 1> select substring(notes, 1, 70), substring(notes, 71, 70), right(notes, 70) 2> from titles 3> where title_id = 'BU2075' 4> go ---------------------------------------------------------------------- ---------------------------------------------------------------------- ---------------------------------------------------------------------- The latest medical and psychological techniques for living with the el ectronic office. Easy-to-understand explanations. r living with the electronic office. Easy-to-understand explanations. (1 row affected) /* */ /* Example using stuff() - a replace function. */ /* */ 1> select phone from authors 2> go phone ------------ 408 496-7223 415 986-7020 415 548-7723 408 286-2428 415 834-2919 913 843-0462 415 658-9932 415 836-7128 707 938-6445 415 585-4620 615 297-2723 503 745-6402 415 935-4228 615 996-8275 219 547-9982 415 843-2991 415 354-7128 415 534-9219 301 946-8853 415 836-7128 707 448-4982 801 826-0752 801 826-0752 (23 rows affected) /* */ /* Change 415 area code to 815 */ /* */ 1> select stuff(phone, 1, 3, "815") from authors 2> where phone like '415%' 3> go ------------ 815 986-7020 815 548-7723 815 834-2919 815 658-9932 815 836-7128 815 585-4620 815 935-4228 815 843-2991 815 354-7128 815 534-9219 815 836-7128 (11 rows affected)