Clinical SAS Interview Questions and Answers: 25 Questions with Clear Answers
By Neha Jain, Principal Consultant and SAS trainer · 17+ years training in SAS · 5,000+ learners trained · Updated 7 November 2026
Clinical SAS interviews test two things: whether you really understand how SAS works, and whether you understand clinical trial data. This guide collects the questions that come up most often, grouped by topic, with clear answers you can build on in your own words.
The short answer
Expect questions in five areas: Base SAS internals, macros, reporting, CDISC SDTM and ADaM, and clinical concepts with validation. Interviewers care less about memorised definitions and more about whether you can explain why — so practise answering aloud with examples from your own projects.

Base SAS questions
1. What is the PDV?
The program data vector is the area of memory where SAS builds one observation at a time while a DATA step runs. It holds the variables being processed plus automatic variables such as _N_ (the iteration count) and _ERROR_.
2. What is the difference between WHERE and a subsetting IF?
WHERE filters observations before they are read into the PDV, so it is efficient and also works in procedures. A subsetting IF works after the observation is in the PDV, so it can use variables created earlier in the same DATA step.
3. When would you use MERGE versus a PROC SQL join?
MERGE needs the data sorted by the BY variables and handles one-to-one and one-to-many matches well. PROC SQL needs no sorting and handles many-to-many joins, which a DATA step MERGE does not handle correctly.
4. What does RETAIN do?
It stops SAS resetting a variable to missing at the start of each DATA step iteration, so values can carry forward — for example, running totals or last-observation-carried-forward logic.
5. What are FIRST. and LAST. variables?
With a BY statement, SAS creates temporary FIRST.var and LAST.var flags that equal 1 on the first and last record of each BY group — useful for counting, deduplicating and picking baseline records.
6. How does SAS treat missing numeric values in comparisons?
A missing numeric value is smaller than any number, so a condition like the one below is true for missing values unless you exclude them:
if lbstresn < 5 then flag = "LOW"; /* also true when missing! */
if not missing(lbstresn) and lbstresn < 5 then flag = "LOW";7. What is the difference between the INPUT and PUT functions?
INPUT converts character to numeric using an informat; PUT converts a value to character using a format.
8. Why might a character value be truncated?
SAS sets a character variable's length the first time it appears in the DATA step. Declare it with a LENGTH statement before first use to avoid truncation.
Macro questions
9. What is the difference between %LET and CALL SYMPUTX?
%LET assigns a macro variable from text when the code is compiled. CALL SYMPUTX creates one from a DATA step value at execution time; it becomes available after that DATA step finishes.
data _null_;
set adam.adsl end=eof;
if eof then call symputx("n_subj", _n_);
run;
%put NOTE: Number of subjects = &n_subj;10. How do you debug a macro?
Turn on the system options MPRINT (shows generated code), MLOGIC (shows macro logic) and SYMBOLGEN (shows how macro variables resolve), then read the log.
11. Why use macros in clinical programming?
The same table is often produced for many parameters, visits or populations. A parameterised macro produces them consistently and reduces copy-paste errors.
Reporting questions
12. How do you create an RTF table?
Wrap PROC REPORT in ODS RTF statements, apply a style template, and control titles, footnotes and column formats. Our TLF programming guide shows a full example.
13. What is the difference between GROUP, ACROSS and ANALYSIS in PROC REPORT?
GROUP collapses rows into groups, ACROSS turns a variable's values into columns, and ANALYSIS calculates statistics on numeric variables.
14. Which procedure do you use for figures?
ODS Graphics procedures such as PROC SGPLOT for line, bar, scatter and box plots, and PROC LIFETEST for Kaplan-Meier curves.
CDISC SDTM and ADaM questions
15. What is the difference between SDTM and ADaM?
SDTM organises collected data into standard domains; ADaM derives analysis-ready datasets from SDTM with traceability. See SDTM vs ADaM explained.
16. Which classes do SDTM domains belong to?
Special-purpose (such as DM), interventions (EX, CM), events (AE, MH, DS) and findings (LB, VS, EG), plus findings about and trial design domains.
17. When do you use SUPPQUAL?
For collected values that have no standard variable in the parent domain; they go into the matching SUPP-- dataset, linked by key variables.
18. How is the study day (--DY) calculated in SDTM?
Relative to the reference start date: the reference date is Day 1 and the day before is Day -1. There is no Day 0.
19. What is ADSL?
The subject-level analysis dataset: one row per subject with treatment variables, key dates, demographics and population flags such as SAFFL and ITTFL.
20. What is the difference between BDS and OCCDS?
BDS holds parameter values over time, such as labs and vital signs, with variables like PARAMCD, AVAL, BASE and CHG. OCCDS is for counting occurrences, such as adverse events and medications.
21. What is define.xml?
The metadata file that describes every submitted dataset, variable, code list and derivation, so reviewers can understand and trace the data.
Clinical and validation questions
22. What is a treatment-emergent adverse event?
Usually an adverse event that starts, or worsens, on or after the first dose of study treatment. The exact rule, including any window after the last dose, comes from the statistical analysis plan.
23. How do you define baseline?
Commonly the last non-missing value on or before the first dose, but always follow the SAP for windows and tie-breaking rules.
24. What is double programming?
A second programmer independently writes code to produce the same dataset or output, and the two are compared — usually with PROC COMPARE — until they match.
proc compare base=prod.adsl compare=qc.adsl listall criterion=1e-8;
id usubjid;
run;25. What does Pinnacle 21 do?
It checks SDTM and ADaM datasets and define.xml against CDISC and regulatory conformance rules, so issues are fixed or explained before submission.
How to prepare
Practise each answer aloud in under a minute, with one example from your work or projects.
Rebuild a small project end to end: one SDTM domain, ADSL, one ADaM dataset and one table.
Review the SAP concepts — baseline, populations, TEAEs — not just the code.
Be honest about what you have and haven't done; interviewers probe deeply.
New to the field? Start with the SAS programmer roadmap and Clinical SAS career scope.
Prepare for Clinical SAS interviews with Eduvercity
Eduvercity's live online Clinical SAS course, taught by Neha Jain, includes mock interviews, resume review and hands-on SDTM, ADaM and TLF projects you can talk about with confidence.
About the author
Neha Jain is a Principal Consultant and Trainer at Eduvercity and works independently as a freelance SAS consultant and trainer. She has trained professionals in SAS for more than 17 years and has more than 20 years of experience as a global consultant across programming, data and project leadership, and has trained more than 5,000 students and professionals, as well as teams at companies worldwide. She teaches Base and Advanced SAS, Clinical SAS (CDISC SDTM, ADaM and TLFs), clinical R and Python to learners in India, the UAE, the UK, the USA and Canada, and advises teams moving clinical programming work from SAS to R. The views in this article are her own. More about Neha and Eduvercity.




Comments