Potential Result Set Differences between Relational DBMSs and the SAS System
|
|
|
- Ashlie Garrison
- 10 years ago
- Views:
Transcription
1 Potential Result Set Differences between Relational DBMSs and the SAS System Fred Levine, Senior Systems Developer, SAS Institute Inc Overview Over the years, the SAS/ACCESS engine development team has made continuous performance improvements to our products by providing our users with the ability to offload to underlying relational data base management systems (RDBMSs) processing that normally would occur in the SAS System. In many cases, one can see significant performance improvements when processing occurs on the RDBMS server. There are three basic mechanisms that provide this functionality: The SQL Pass-Through facility, which utilizes special syntax in PROC SQL to allow RDBMSspecific SQL to get passed to the RDBMS server. The SAS WHERE clause used with a SAS/ACCESS engine. This is the WHERE clause that can be surfaced from any SAS procedure that operates on rectangular data. PROC SQL queries that process tables from a single SAS/ACCESS LIBNAME engine and contain performance-sensitive operations such as joins, distinct processing, and SQL-defined aggregate functions. For the purposes of this paper, I will only address the latter two performance mechanisms because in these two cases, RDBMS server processing is normally transparent to the user. It is this transparency that at times can be troublesome due to the fact that Certain types of processing are handled differently in SAS than in most RDBMSs, which potentially can yield different result sets. Users may not always be aware of which software system is processing their SAS jobs. As a result, they may get unexpected results. Prerequisites To get the most benefit from the concepts discussed in this paper, you should already be familiar with the syntax of the SAS/ACCESS LIBNAME statement that controls when queries are passed to the RDBMS. For further information, please refer to the SAS/ACCESS LIBNAME engine documentation. RDBMS Null Values Versus SAS Missing Values How does RDBMS processing differ from SAS processing? The major area of processing where result set differences can occur is when processing null data. In the SAS System, the element that is most similar to the RDBMS null value is the SAS missing value. Because RDBMS nulls and SAS missing values are conceptually the same, SAS/ACCESS engines will translate SAS missing values to RDBMS nulls when creating RDBMS tables from within SAS and, conversely, translate RDBMS nulls to SAS missing values when reading RDBMS tables into SAS. So how do RDBMS Nulls and SAS missing values differ?
2 Potential Result Set Differences between Relational DBMSs and the SAS System 2 In most relational RDBMSs, nulls represent the absence of data; that is, RDBMS nulls do not sort or compare because there is no data on which to operate. However in SAS, we have the concept of a missing value, which is quite different. A SAS missing value is a special, reserved floating point number that can have 28 possible values represented by the following elements: A period (. ) An underscore and a period ( _. ) A period and an alpha (.A through.z ). These values make a lot of sense for SAS procedures that utilize survey data where more than one missing value is needed. For example, consider an epidemiological survey that asks a patient about their genetic predisposition to certain illnesses. The patient could decide to leave some of these questions blank for one or more reasons. They may not know the answer or actually refuse to answer. If the survey required a reason for not answering the question, then in this example, two missing values would be needed. For example, the values could be coded as.d for do not know and.r for refuse to answer. So it is helpful in such cases for software that has its roots in statistical analysis to provide multiple missing values. Because these missing values must be distinguishable from each other, it is important to note that SAS missing values will evaluate with standard comparison operators, unlike RDBMS nulls which only evaluate with special null comparison operators, that is, where column is null. This ability to evaluate missing values with standard comparison operators has significant implications when passing queries to an RDBMS for processing, because the RDBMS will interpret nulls differently than SAS. In the following examples, I use the value "." as the SAS missing value to illustrate these differences because the SAS "." is the most commonly used missing value and is visually identical to an RDBMS null. Example 1 - Evaluating Column < 0 with Null Data Data Processed by RDBMS libname ora oracle user=scott pw=tiger; data ora.tabl1; x=. ; /* create missing value */ NOTE: The data set ORA.TABL1 has 1 observations and 1 variables. NOTE: DATA statement used: real time seconds cpu time 0.20 seconds /* WHERE clause passed to Oracle for processing: */ proc print data=ora.tabl1; where x < 0; NOTE: No observations were selected from data set ORA.TABL1.
3 Potential Result Set Differences between Relational DBMSs and the SAS System 3 Data Processed by SAS libname ora oracle user=scott pw=tiger direct_sql=(nowhere); /* WHERE clause processed by SAS: */ proc print data=ora.tabl1; where x < 0; Obs X 1. NOTE: There were 1 observations read from the data set ORA.TABL1. In this very simple example, we see a difference in results because in Oracle the null is interpreted as the absence of data and therefore will not evaluate with a < comparison operator. However in SAS, the null (SAS missing value) is interpreted as its internal floating point representation whose ordinal value is less than 0. Therefore, in SAS the expression does satisfy the condition of the WHERE clause. Example 2 - Comparing Nulls for Equality In the following two exhibits, PROC PRINT is used to show regional sales employees salaries and commissions for a Midwest region and a South region. Note that not all these employees were given commissions, so the value of commissions can be null. proc print data=ora.midwest; Obs EMPID SALARY COMMISSION NOTE: There were 3 observations read from the data set ORA.MIDWEST. NOTE: PROCEDURE PRINT used: real time cpu time 1.14 seconds 0.13 seconds
4 Potential Result Set Differences between Relational DBMSs and the SAS System 4 proc print data=ora.south; Obs EMPID SALARY COMMISSION NOTE: There were 3 observations read from the data set ORA.SOUTH. NOTE: PROCEDURE PRINT used: real time cpu time 0.05 seconds 0.04 seconds Using these two employee tables, we can find out which Midwestern sales employees made the same commission as the Southern sales employees. To do this, construct a simple inner join by first passing the query to Oracle and then to SAS. Here is the code for the Oracle processing along with the output: /* WHERE clause passed to Oracle for processing: */ libname ora oracle user=scott pw=tiger; proc sql; select midwest.empid, south.empid from ora.midwest, ora.south where midwest.commission=south.commission; NOTE: No rows were selected. No rows were selected. This is the result one would expect because, as one can see from the above output, there are no Midwestern employees who made the same commission as any of the Southern employees.
5 Potential Result Set Differences between Relational DBMSs and the SAS System 5 Next, here is the same query, but this time SAS does the processing: /* WHERE clause processed by SAS: */ libname ora oracle user=scott pw=tiger direct_sql=no; select midwest.empid, south.empid from ora.midwest, ora.south where midwest.commission=south.commission; EMPID EMPID Note in the output that the Midwestern employees identified as 101, 102, and the Southern employee identified as 200 did not make commissions. As a result, all of these employees had null values for commission. The reason that SAS found these matches is that SAS missing values are interpreted as real ordinal numbers and therefore will match when one SAS missing value equals another. However, the result set from the SAS processing does not truly reflect the intent of the query. If I wanted to know which employees did not make a commission, I would have specified "where commission is null" as part of the query. (For more information about revising SAS code in these circumstances, see the section "Workarounds for Null Data Problems.") Example 3 - Internally Comparing Nulls for Equality with Outer Joins In the two examples so far, we have been using data that contains null values. However, it is also possible to get different result sets from SAS and an RDBMS when submitting outer joins where the data does not contain nulls but the internal processing generates nulls for intermediate result sets. To illustrate, below are four simple Ingres tables that will construct a four-table outer join: Table 1 - ing.q proc print data=ing.q; Obs x
6 Potential Result Set Differences between Relational DBMSs and the SAS System 6 Table 2 - ing.q2 proc print data=ing.q2; Obs x Table 3 - ing.y proc print data=ing.y; Obs x Table 4 - ing.z proc print data=ing.z; Obs x
7 Potential Result Set Differences between Relational DBMSs and the SAS System 7 Here is the code used to pass the outer join query to Ingres: /* SQL query passed to Ingres for processing: */ libname ing ingres database=clifftop; proc sql; select * from ing.y left join ing.q on y.x = q.x left join ing.z on z.x=y.x right join ing.q2 on q.x = z.x; Here are the results when Ingres processes the query: x x x x Here is the same outer join query but this time processed by SAS: Here are the results from SAS: /* SQL query processed by SAS: */ libname ing ingres database=clifftop direct_sql= no; proc sql; select * from ing.y left join ing.q on y.x = q.x left join ing.z on z.x=y.x right join ing.q2 on q.x = z.x; x x x x None of these tables contain nulls. So why do we get different results? The answer lies in the fact that this query generates intermediate result sets. Therefore, let s analyze each intermediate result set to see how these tables are being joined.
8 Potential Result Set Differences between Relational DBMSs and the SAS System 8 First Intermediate Result Set {select * from ing.y left join ing.q on y.x = q.x} Tables Joined: y.x q.x Generates: y.x q.x Second Intermediate Result Set {left join ing.z on z.x=y.x} Tables Joined: Generates: y.x q.x z.x y.x q.x z.x
9 Potential Result Set Differences between Relational DBMSs and the SAS System 9 Third Intermediate Result Set {right join ing.q2 on q.x = z.x;} Tables Joined: y.x q.x z.x q2.x Here is where this query gets interesting. Note that the ON clause in this last intermediate result set does not reference a column from the q2 table being joined. This is where the problem lies. Notice the result set so far. In the first row, q.x does equal z.x when SAS does the processing because missing values do compare in SAS. As a result, the first row constitutes a match in SAS and is joined to the first row of q2. Because there are no other rows that match here, the final SAS-processed result set is as follows: y.x q.x z.x q2.x When this same query gets passed to Ingres, the final result set looks different. Here are the relevant tables again just prior to the last join. When Ingres (or any RDBMS) processes this query, q.x will not equal z.x because these nulls have no value and therefore do not compare. Tables Joined: y.x q.x z.x q2.x
10 Potential Result Set Differences between Relational DBMSs and the SAS System 10 Here is the final result set for Ingres. Note that because there are no matches, we only see nulls in the non-preserved tables. Final Ingres Result Set: y.x q.x z.x q2.x This example is a bit unusual because outer join queries usually reference at least one column from the tables being joined in their respective ON clauses. However, we can now see how different results can occur even when the data do not contain any nulls. Work-arounds for Null Data Problems A generic solution for the null data issue does exist that will always produce consistent results regardless of whether SAS or an underlying RDBMS is doing the processing. When specifying WHERE and ON conditions, one can add: "and <expression> is not null." This additional statement will prevent SAS from evaluating nulls thereby making SAS produce the same results as an underlying RDBMS. This extra statement will have no effect when passed to the RDBMS for processing. When applied to the three examples discussed earlier, the revised code appears as follows. The additional is not null expressions are in red: Revised Code for Example 1 - Evaluating Column < 0 with Null Data proc print data=ora.tabl1; where x < 0 and x is not null; Revised Code for Example 2 - Comparing Nulls for Equality select midwest.empid, south.empid from ora.midwest, ora.south where midwest.commission=south.commission and midwest.commission is not null; Revised Code for Example 3 - Internally Comparing Nulls for Equality with Outer Joins select * from ing.y left join ing.q on (y.x = q.x and y.x is not null) left join ing.z on (z.x=y.x and z.x is not null) right join ing.q2 on (q.x = z.x and q.x is not null); Note that in examples 2 and 3 in which we compare two columns for equality, you only need to add the is not null expression for one of the contributing columns because if one of them is not null, we could never be comparing two nulls for equality.
11 Potential Result Set Differences between Relational DBMSs and the SAS System 11 In all these examples, identical results would be returned regardless of whether SAS or the underlying RDBMS was doing the processing. The third example is admittedly cumbersome because a user may know very well that the underlying tables do not contain any null data and would only generate such a query to account for nulls in generated intermediate result sets that are not surfaced to the user. Adding the is not null expression to all WHERE clauses and all ON clauses may not always be the most efficient thing to do, so I am not suggesting that it be specified all the time. Depending on the query it can add a lot of code complexity. However, it is a solution that will solve this problem and users should use their own judgement and knowledge of their own data to determine when it would be prudent to apply the is not null expression. Conclusion The examples in this paper illustrate how it is possible to get different result sets depending on whether SAS or an underlying RDBMS (via a SAS/ACCESS LIBNAME engine) is doing the processing. Although in many cases the differences illustrated in these examples will not present a problem, it is important for SAS/ACCESS users to understand how these result set differences can occur so they can tailor their underlying data and subsequent querying to achieve the desired results. Contact Information Fred Levine Senior Systems Developer SAS Institute Inc Cary, NC [email protected]
CHAPTER 1 Overview of SAS/ACCESS Interface to Relational Databases
3 CHAPTER 1 Overview of SAS/ACCESS Interface to Relational Databases About This Document 3 Methods for Accessing Relational Database Data 4 Selecting a SAS/ACCESS Method 4 Methods for Accessing DBMS Tables
Chapter 9 Joining Data from Multiple Tables. Oracle 10g: SQL
Chapter 9 Joining Data from Multiple Tables Oracle 10g: SQL Objectives Identify a Cartesian join Create an equality join using the WHERE clause Create an equality join using the JOIN keyword Create a non-equality
Outline. SAS-seminar Proc SQL, the pass-through facility. What is SQL? What is a database? What is Proc SQL? What is SQL and what is a database
Outline SAS-seminar Proc SQL, the pass-through facility How to make your data processing someone else s problem What is SQL and what is a database Quick introduction to Proc SQL The pass-through facility
SQL Pass-Through and the ODBC Interface
SQL Pass-Through and the ODBC Interface Jessica Hampton, CIGNA Corporation, Bloomfield, CT ABSTRACT Does SAS implicit SQL pass-through sometimes fail to meet your needs? Do you sometimes need to communicate
Top Ten SAS DBMS Performance Boosters for 2009 Howard Plemmons, SAS Institute Inc., Cary, NC
Paper 309-2009 Top Ten SAS DBMS Performance Boosters for 2009 Howard Plemmons, SAS Institute Inc, Cary, NC ABSTRACT Gleaned from internal development efforts and SAS technical support, this paper tracks
ICAB4136B Use structured query language to create database structures and manipulate data
ICAB4136B Use structured query language to create database structures and manipulate data Release: 1 ICAB4136B Use structured query language to create database structures and manipulate data Modification
USING SAS WITH ORACLE PRODUCTS FOR DATABASE MANAGEMENT AND REPORTING
USING SAS WITH ORACLE PRODUCTS FOR DATABASE MANAGEMENT AND REPORTING Henry W. Buffum, R. O. W. ScIences, Inc. Darryl J. Keith, U.S. Environmental Protection Agency Abstract: Data for a large environmental
Chapter 1 Overview of the SQL Procedure
Chapter 1 Overview of the SQL Procedure 1.1 Features of PROC SQL...1-3 1.2 Selecting Columns and Rows...1-6 1.3 Presenting and Summarizing Data...1-17 1.4 Joining Tables...1-27 1-2 Chapter 1 Overview of
Effective Use of SQL in SAS Programming
INTRODUCTION Effective Use of SQL in SAS Programming Yi Zhao Merck & Co. Inc., Upper Gwynedd, Pennsylvania Structured Query Language (SQL) is a data manipulation tool of which many SAS programmers are
9.1 SAS. SQL Query Window. User s Guide
SAS 9.1 SQL Query Window User s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. SAS 9.1 SQL Query Window User s Guide. Cary, NC: SAS Institute Inc. SAS
# or ## - how to reference SQL server temporary tables? Xiaoqiang Wang, CHERP, Pittsburgh, PA
# or ## - how to reference SQL server temporary tables? Xiaoqiang Wang, CHERP, Pittsburgh, PA ABSTRACT This paper introduces the ways of creating temporary tables in SQL Server, also uses some examples
Access to Relational Databases Using SAS. Frederick Pratter, Destiny Corp.
Paper TF-21 Access to Relational Databases Using SAS ABSTRACT Frederick Pratter, Destiny Corp. SAS software currently provides many of the features of a database management system, including database views
DBF Chapter. Note to UNIX and OS/390 Users. Import/Export Facility CHAPTER 7
97 CHAPTER 7 DBF Chapter Note to UNIX and OS/390 Users 97 Import/Export Facility 97 Understanding DBF Essentials 98 DBF Files 98 DBF File Naming Conventions 99 DBF File Data Types 99 ACCESS Procedure Data
SAS Views The Best of Both Worlds
Paper 026-2010 SAS Views The Best of Both Worlds As seasoned SAS programmers, we have written and reviewed many SAS programs in our careers. What I have noticed is that more often than not, people who
Oracle Database 10g: Introduction to SQL
Oracle University Contact Us: 1.800.529.0165 Oracle Database 10g: Introduction to SQL Duration: 5 Days What you will learn This course offers students an introduction to Oracle Database 10g database technology.
Using SAS as a Relational Database
Using SAS as a Relational Database Yves DeGuire Statistics Canada Come out of the desert of ignorance to the OASUS of knowledge Introduction Overview of relational database concepts Why using SAS as a
Displaying Data from Multiple Tables
4 Displaying Data from Multiple Tables Copyright Oracle Corporation, 2001. All rights reserved. Schedule: Timing Topic 55 minutes Lecture 55 minutes Practice 110 minutes Total Objectives After completing
Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff
D80198GC10 Oracle Database 12c SQL and Fundamentals Summary Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff Level Professional Delivery Method Instructor-led
Using SAS With a SQL Server Database. M. Rita Thissen, Yan Chen Tang, Elizabeth Heath RTI International, RTP, NC
Using SAS With a SQL Server Database M. Rita Thissen, Yan Chen Tang, Elizabeth Heath RTI International, RTP, NC ABSTRACT Many operations now store data in relational databases. You may want to use SAS
ODBC Chapter,First Edition
1 CHAPTER 1 ODBC Chapter,First Edition Introduction 1 Overview of ODBC 2 SAS/ACCESS LIBNAME Statement 3 Data Set Options: ODBC Specifics 15 DBLOAD Procedure: ODBC Specifics 25 DBLOAD Procedure Statements
Oracle SQL. Course Summary. Duration. Objectives
Oracle SQL Course Summary Identify the major structural components of the Oracle Database 11g Create reports of aggregated data Write SELECT statements that include queries Retrieve row and column data
Handling Missing Values in the SQL Procedure
Handling Missing Values in the SQL Procedure Danbo Yi, Abt Associates Inc., Cambridge, MA Lei Zhang, Domain Solutions Corp., Cambridge, MA ABSTRACT PROC SQL as a powerful database management tool provides
MySQL for Beginners Ed 3
Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.
Advanced Tutorials. The Dark Side of the Transparent Moon
The Dark Side of the Transparent Moon -- Tips, Tricks and Traps of Handling ORACLE Data Using SAS Xinyu Ji, Fallon Clinic, Worcester, MA ABSTRACT The paper discusses tips, tricks and traps of handling
Lab # 5. Retreiving Data from Multiple Tables. Eng. Alaa O Shama
The Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4113: Database Lab Lab # 5 Retreiving Data from Multiple Tables Eng. Alaa O Shama November, 2015 Objectives:
9.1 Supplement for SAS/ACCESS. Microsoft SQL Server. SAS/ACCESS for Relational Databases
SAS/ACCESS 9.1 Supplement for Microsoft SQL Server SAS/ACCESS for Relational Databases The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. SAS/ACCESS 9.1 Supplement
Parallel Data Preparation with the DS2 Programming Language
ABSTRACT Paper SAS329-2014 Parallel Data Preparation with the DS2 Programming Language Jason Secosky and Robert Ray, SAS Institute Inc., Cary, NC and Greg Otto, Teradata Corporation, Dayton, OH A time-consuming
Oracle Database: SQL and PL/SQL Fundamentals
Oracle University Contact Us: 1.800.529.0165 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This course is designed to deliver the fundamentals of SQL and PL/SQL along
Using DATA Step MERGE and PROC SQL JOIN to Combine SAS Datasets Dalia C. Kahane, Westat, Rockville, MD
Using DATA Step MERGE and PROC SQL JOIN to Combine SAS Datasets Dalia C. Kahane, Westat, Rockville, MD ABSTRACT This paper demonstrates important features of combining datasets in SAS. The facility to
DBMS / Business Intelligence, SQL Server
DBMS / Business Intelligence, SQL Server Orsys, with 30 years of experience, is providing high quality, independant State of the Art seminars and hands-on courses corresponding to the needs of IT professionals.
Books-by-Users Web Development with SAS by Example (Third Edition) Frederick E. Pratter
Books-by-Users Web Development with SAS by Example (Third Edition) Frederick E. Pratter Click Tom to Kari, edit Master Statistics subtitle style 07/06/12 Come out of the desert of ignorance to the OASUS
SAS PASSTHRU to Microsoft SQL Server using ODBC Nina L. Werner, Madison, WI
Paper SA-03-2014 SAS PASSTHRU to Microsoft SQL Server using ODBC Nina L. Werner, Madison, WI ABSTRACT I wish I could live in SAS World I do much of my data analysis there. However, my current environment
Step into the Cloud: Ways to Connect to Amazon Redshift with SAS/ACCESS
ABSTRACT Paper SAS1789-2015 Step into the Cloud: Ways to Connect to Amazon Redshift with SAS/ACCESS James Ke Wang, SAS Research and Development (Beijing) Co., Ltd., and Salman Maher, SAS Institute Inc.
Oracle 10g PL/SQL Training
Oracle 10g PL/SQL Training Course Number: ORCL PS01 Length: 3 Day(s) Certification Exam This course will help you prepare for the following exams: 1Z0 042 1Z0 043 Course Overview PL/SQL is Oracle's Procedural
Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY
Discovering SQL A HANDS-ON GUIDE FOR BEGINNERS Alex Kriegel WILEY Wiley Publishing, Inc. INTRODUCTION xxv CHAPTER 1: DROWNING IN DATA, DYING OF THIRST FOR KNOWLEDGE 1 Data Deluge and Informational Overload
Foundations & Fundamentals. A PROC SQL Primer. Matt Taylor, Carolina Analytical Consulting, LLC, Charlotte, NC
A PROC SQL Primer Matt Taylor, Carolina Analytical Consulting, LLC, Charlotte, NC ABSTRACT Most SAS programmers utilize the power of the DATA step to manipulate their datasets. However, unless they pull
Search and Replace in SAS Data Sets thru GUI
Search and Replace in SAS Data Sets thru GUI Edmond Cheng, Bureau of Labor Statistics, Washington, DC ABSTRACT In managing data with SAS /BASE software, performing a search and replace is not a straight
The Sins of SQL Programming that send the DB to Upgrade Purgatory Abel Macias. 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
The Sins of SQL Programming that send the DB to Upgrade Purgatory Abel Macias 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Who is Abel Macias? 1994 - Joined Oracle Support 2000
SAS 9.3 Drivers for ODBC
SAS 9.3 Drivers for ODBC User s Guide Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2011. SAS 9.3 Drivers for ODBC: User s Guide,
1 Structured Query Language: Again. 2 Joining Tables
1 Structured Query Language: Again So far we ve only seen the basic features of SQL. More often than not, you can get away with just using the basic SELECT, INSERT, UPDATE, or DELETE statements. Sometimes
Oracle Database 12c: Introduction to SQL Ed 1.1
Oracle University Contact Us: 1.800.529.0165 Oracle Database 12c: Introduction to SQL Ed 1.1 Duration: 5 Days What you will learn This Oracle Database: Introduction to SQL training helps you write subqueries,
Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC
Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC ABSTRACT As data sets continue to grow, it is important for programs to be written very efficiently to make sure no time
Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition
Beginning C# 5.0 Databases Second Edition Vidya Vrat Agarwal Contents J About the Author About the Technical Reviewer Acknowledgments Introduction xviii xix xx xxi Part I: Understanding Tools and Fundamentals
Files. Files. Files. Files. Files. File Organisation. What s it all about? What s in a file?
Files What s it all about? Information being stored about anything important to the business/individual keeping the files. The simple concepts used in the operation of manual files are often a good guide
Oracle Database: SQL and PL/SQL Fundamentals NEW
Oracle University Contact Us: + 38516306373 Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training delivers the
When to Move a SAS File between Hosts
3 CHAPTER Moving and Accessing SAS Files between Hosts When to Move a SAS File between Hosts 3 When to Access a SAS File on a Remote Host 3 Host Types Supported According to SAS Release 4 Avoiding and
Introduction to Querying & Reporting with SQL Server
1800 ULEARN (853 276) www.ddls.com.au Introduction to Querying & Reporting with SQL Server Length 5 days Price $4169.00 (inc GST) Overview This five-day instructor led course provides students with the
Displaying Data from Multiple Tables. Copyright 2006, Oracle. All rights reserved.
Displaying Data from Multiple Tables Objectives After completing this lesson, you should be able to do the following: Write SELECT statements to access data from more than one table using equijoins and
Database Design and Database Programming with SQL - 5 Day In Class Event Day 1 Activity Start Time Length
Database Design and Database Programming with SQL - 5 Day In Class Event Day 1 Welcome & Introductions 9:00 AM 20 Lecture 9:20 AM 40 Practice 10:00 AM 20 Lecture 10:20 AM 40 Practice 11:15 AM 30 Lecture
SQL SELECT Query: Intermediate
SQL SELECT Query: Intermediate IT 4153 Advanced Database J.G. Zheng Spring 2012 Overview SQL Select Expression Alias revisit Aggregate functions - complete Table join - complete Sub-query in where Limiting
Where? Originating Table Employees Departments
JOINS: To determine an employee s department name, you compare the value in the DEPARTMENT_ID column in the EMPLOYEES table with the DEPARTMENT_ID values in the DEPARTMENTS table. The relationship between
Join Example. Join Example Cart Prod. www.comp-soln.com 2006 Comprehensive Consulting Solutions, Inc.All rights reserved.
Join Example S04.5 Join Example Cart Prod S04.6 Previous joins are equijoins (=) Other operators can be used e.g. List all my employees older than their manager SELECT emp.name FROM employee emp, manager
Oracle Database: SQL and PL/SQL Fundamentals
Oracle University Contact Us: +966 12 739 894 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training is designed to
SAS Programming Tips, Tricks, and Techniques
SAS Programming Tips, Tricks, and Techniques A presentation by Kirk Paul Lafler Copyright 2001-2012 by Kirk Paul Lafler, Software Intelligence Corporation All rights reserved. SAS is the registered trademark
Hortonworks & SAS. Analytics everywhere. Page 1. Hortonworks Inc. 2011 2014. All Rights Reserved
Hortonworks & SAS Analytics everywhere. Page 1 A change in focus. A shift in Advertising From mass branding A shift in Financial Services From Educated Investing A shift in Healthcare From mass treatment
Lost in Space? Methodology for a Guided Drill-Through Analysis Out of the Wormhole
Paper BB-01 Lost in Space? Methodology for a Guided Drill-Through Analysis Out of the Wormhole ABSTRACT Stephen Overton, Overton Technologies, LLC, Raleigh, NC Business information can be consumed many
GET DATA FROM MULTIPLE TABLES QUESTIONS
GET DATA FROM MULTIPLE TABLES QUESTIONS http://www.tutorialspoint.com/sql_certificate/get_data_from_multiple_tables_questions.htm Copyright tutorialspoint.com 1.Which of the following is not related to
Performing Queries Using PROC SQL (1)
SAS SQL Contents Performing queries using PROC SQL Performing advanced queries using PROC SQL Combining tables horizontally using PROC SQL Combining tables vertically using PROC SQL 2 Performing Queries
SAS 9.4 PC Files Server
SAS 9.4 PC Files Server Installation and Configuration Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2014. SAS 9.4 PC Files Server: Installation
Define terms Write single and multiple table SQL queries Write noncorrelated and correlated subqueries Define and use three types of joins
Chapter 7 Advanced SQL 1 Define terms Objectives Write single and multiple table SQL queries Write noncorrelated and correlated subqueries Define and use three types of joins 2 Nested Queries (Subqueries)
Alternatives to Merging SAS Data Sets But Be Careful
lternatives to Merging SS Data Sets ut e Careful Michael J. Wieczkowski, IMS HELTH, Plymouth Meeting, P bstract The MERGE statement in the SS programming language is a very useful tool in combining or
Introduction to SQL and SQL in R. LISA Short Courses Xinran Hu
Introduction to SQL and SQL in R LISA Short Courses Xinran Hu 1 Laboratory for Interdisciplinary Statistical Analysis LISA helps VT researchers benefit from the use of Statistics Collaboration: Visit our
Alert Notes. The SAS System Release 8.1 (TS1M0) Windows, Windows NT, Windows NT Server. Please Read Before Beginning Installation.
Alert Notes The SAS System Release 8.1 (TS1M0) Windows, Windows NT, Windows NT Server Introduction Please Read Before Beginning Installation Alert Notes list problems that you need to be aware of before
Exploiting Key Answers from Your Data Warehouse Using SAS Enterprise Reporter Software
Exploiting Key Answers from Your Data Warehouse Using SAS Enterprise Reporter Software Donna Torrence, SAS Institute Inc., Cary, North Carolina Juli Staub Perry, SAS Institute Inc., Cary, North Carolina
Improving Your Relationship with SAS Enterprise Guide
Paper BI06-2013 Improving Your Relationship with SAS Enterprise Guide Jennifer Bjurstrom, SAS Institute Inc. ABSTRACT SAS Enterprise Guide has proven to be a very beneficial tool for both novice and experienced
SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board
SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms.
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix Jennifer Clegg, SAS Institute Inc., Cary, NC Eric Hill, SAS Institute Inc., Cary, NC ABSTRACT Release 2.1 of SAS
Advanced Query for Query Developers
for Developers This is a training guide to step you through the advanced functions of in NUFinancials. is an ad-hoc reporting tool that allows you to retrieve data that is stored in the NUFinancials application.
Course 20461C: Querying Microsoft SQL Server Duration: 35 hours
Course 20461C: Querying Microsoft SQL Server Duration: 35 hours About this Course This course is the foundation for all SQL Server-related disciplines; namely, Database Administration, Database Development
Improving Maintenance and Performance of SQL queries
PaperCC06 Improving Maintenance and Performance of SQL queries Bas van Bakel, OCS Consulting, Rosmalen, The Netherlands Rick Pagie, OCS Consulting, Rosmalen, The Netherlands ABSTRACT Almost all programmers
Accessing a Remote SAS Data Library. Transcript
Accessing a Remote SAS Data Library Transcript Accessing a Remote SAS Data Library Transcript was developed by Michelle Buchecker. Additional contributions were made by Christine Riddiough and Cheryl Doninger.
SAS/ACCESS 9.1.3 Supplement for Oracle. SAS/ACCESS for Relational Databases
SAS/ACCESS 9.1.3 Supplement for Oracle SAS/ACCESS for Relational Databases The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2005. SAS/ACCESS 9.1.3 Supplement for Oracle
Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois
Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois Abstract This paper introduces SAS users with at least a basic understanding of SAS data
Introduction. Why Use ODBC? Setting Up an ODBC Data Source. Stat/Math - Getting Started Using ODBC with SAS and SPSS
Introduction Page 1 of 15 The Open Database Connectivity (ODBC) standard is a common application programming interface for accessing data files. In other words, ODBC allows you to move data back and forth
2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA www.sybex.com
Essential SQL 2 Essential SQL This bonus chapter is provided with Mastering Delphi 6. It is a basic introduction to SQL to accompany Chapter 14, Client/Server Programming. RDBMS packages are generally
Oracle Database 11g: SQL Tuning Workshop Release 2
Oracle University Contact Us: 1 800 005 453 Oracle Database 11g: SQL Tuning Workshop Release 2 Duration: 3 Days What you will learn This course assists database developers, DBAs, and SQL developers to
SAS/ACCESS 9.3 Interface to PC Files
SAS/ACCESS 9.3 Interface to PC Files Reference SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2011. SAS/ACCESS 9.3 Interface to Files: Reference.
Technical Paper. Defining an ODBC Library in SAS 9.2 Management Console Using Microsoft Windows NT Authentication
Technical Paper Defining an ODBC Library in SAS 9.2 Management Console Using Microsoft Windows NT Authentication Release Information Content Version: 1.0 October 2015. Trademarks and Patents SAS Institute
Getting Your Data into SAS
Getting Your Data into SAS Stephanie R. Thompson Where is your data stored? Oracle tables SQL Server tables Microsoft Access Microsoft Excel Text file SPSS All over the place 1 What s the solution? SAS/ACCESS
Demystifying PROC SQL Join Algorithms Kirk Paul Lafler, Software Intelligence Corporation
Paper TU01 Demystifying PROC SQL Join Algorithms Kirk Paul Lafler, Software Intelligence Corporation ABSTRACT When it comes to performing PROC SQL joins, users supply the names of the tables for joining
ENHANCEMENTS TO SQL SERVER COLUMN STORES. Anuhya Mallempati #2610771
ENHANCEMENTS TO SQL SERVER COLUMN STORES Anuhya Mallempati #2610771 CONTENTS Abstract Introduction Column store indexes Batch mode processing Other Enhancements Conclusion ABSTRACT SQL server introduced
It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks.
Pharmasug 2014 - paper CC-47 It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks. ABSTRACT William E Benjamin Jr, Owl Computer
UNIX Operating Environment
97 CHAPTER 14 UNIX Operating Environment Specifying File Attributes for UNIX 97 Determining the SAS Release Used to Create a Member 97 Creating a Transport File on Tape 98 Copying the Transport File from
AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates
AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C Y Associates Abstract This tutorial will introduce the SQL (Structured Query Language) procedure through a series of simple examples We will initially
Managing Tables in Microsoft SQL Server using SAS
Managing Tables in Microsoft SQL Server using SAS Jason Chen, Kaiser Permanente, San Diego, CA Jon Javines, Kaiser Permanente, San Diego, CA Alan L Schepps, M.S., Kaiser Permanente, San Diego, CA Yuexin
Hummingbird BI BI Query Queries User s Guide
Hummingbird BI BI Query Queries User s Guide BI Query Queries User s Guide Version: 9.0.1 Part Number: 8697-2M February 2006 Hummingbird Ltd. 1 Sparks Avenue, Toronto, Ontario, Canada M2H 2W1 Tel: +1 416
OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System (HDFS)
Use Data from a Hadoop Cluster with Oracle Database Hands-On Lab Lab Structure Acronyms: OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System (HDFS) All files are
MS-50401 - Designing and Optimizing Database Solutions with Microsoft SQL Server 2008
MS-50401 - Designing and Optimizing Database Solutions with Microsoft SQL Server 2008 Table of Contents Introduction Audience At Completion Prerequisites Microsoft Certified Professional Exams Student
SQL Server. 1. What is RDBMS?
SQL Server 1. What is RDBMS? Relational Data Base Management Systems (RDBMS) are database management systems that maintain data records and indices in tables. Relationships may be created and maintained
InfiniteInsight 6.5 sp4
End User Documentation Document Version: 1.0 2013-11-19 CUSTOMER InfiniteInsight 6.5 sp4 Toolkit User Guide Table of Contents Table of Contents About this Document 3 Common Steps 4 Selecting a Data Set...
Databases in Engineering / Lab-1 (MS-Access/SQL)
COVER PAGE Databases in Engineering / Lab-1 (MS-Access/SQL) ITU - Geomatics 2014 2015 Fall 1 Table of Contents COVER PAGE... 0 1. INTRODUCTION... 3 1.1 Fundamentals... 3 1.2 How To Create a Database File
Transferring vs. Transporting Between SAS Operating Environments Mimi Lou, Medical College of Georgia, Augusta, GA
CC13 Transferring vs. Transporting Between SAS Operating Environments Mimi Lou, Medical College of Georgia, Augusta, GA ABSTRACT Prior to SAS version 8, permanent SAS data sets cannot be moved directly
Querying Microsoft SQL Server 2012
Course 10774A: Querying Microsoft SQL Server 2012 Length: 5 Days Language(s): English Audience(s): IT Professionals Level: 200 Technology: Microsoft SQL Server 2012 Type: Course Delivery Method: Instructor-led
Database Management Systems Comparative Study: Performances of Microsoft SQL Server Versus Oracle
Database Management Systems Comparative Study: Performances of Microsoft SQL Server Versus Oracle Cătălin Tudose*, Carmen Odubăşteanu** * - ITC Networks, Bucharest, Romania, e-mail: [email protected]
and what does it have to do with accounting software? connecting people and business
1999-2008. All rights reserved Jim2 is a registered trademark of Jim2 by Happen Business Pty Limited P +61 2 9570 4696 F +61 2 8569 1858 E [email protected] W www.happen.biz what is sql and what does it
