Implicit: You code in SAS syntax, SAS formats a query for you in the database's syntax and passes that query to the database. Some processing will be done within the database but SAS could also do some processing of the results set.
Explicit: You code in the database's syntax. SAS passes the query directly to the database for execution without modification. There is 100% execution of the query within the database (unless you code something in addition to what is passed to the database).
Jim
That's a badly worded question.
Libnames can be used for explicit and for implicit SQL. Explicit simply means that SAS does not translate the SQL to native database SQL. Instead the SQL is explicitly supplied by the user.
Consider:
libname ORA oracle connections parameters ...;
proc sql;
connect using ORA;
select * from connection to ORA (
select COL1
, listagg(COL2, ', ') within group (order by COL2) "names"
from TABLE1
group by COL1
)
order by put(COL1,myfmt.);
Here the SAS code is in blue and the Oracle code in red.
You could have SAS code only (though of course there would only be SAS syntax then).
libname ORA oracle connections parameters ...;
proc sql;
select ...
from ORA.TABLE1
group by ...
order by put(COL1,myfmt.);
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.