Jeśli w data stepie nie ma ani jednej instrukcji output, zostanie ona domyślnie dodana na końcu.

O tym, które zmienne z wektora zmiennych znajdą się w zbiorze wynikowym możemy zadecydować używając instrukcji keep i drop: keep zmienna1 [zmienna2 ...]; drop zmienna1 [zmienna2 ...]; output;

Jeśli nie użyjemy żadnego keep, domyślnie brane są wszystkie zmienne z wektora zmiennych. Jeśli użyto choć jednego keep gdziekolwiek w data stepie, w zbiorze wynikowym zapisywane są wszystkie zmienne wymienione w którejkolwiek instrukcji keep. Jeśli użyto jednej, lub wielu instrukcji drop, na koniec odrzucane są zmienne wymienione w tych instrukcjach.

Data step może wytwarzać więcej niż jedną tabelę naraz. Wówczas wszystkie tabele muszą być wymienione we frazie data, a po output możemy podać, do których tabel ma trafić wiersz wyniku. keep i drop dotyczą wszystkich tabel, można jednak różnicować zmienne trafiające do każdej z nich, za pomocą fraz (keep=zmienna1 [zmienna2...]) i (drop=zmienna1 [zmienna2...]) umieszczanych po nazwie tabeli w instrukcji data.

Run Instrukcja występująca na końcu kodu data stepu. Powoduje przejście z powrotem na początek data stepu.