jest globalna dla całego data stepu. Nie ma znaczenia w którym miejscu wystąpi. By powoduje zmianę działania instrukcji set (a także opisanej dalej merge) - dane będą wczytywane nie najpierw z pierwszej tabeli, potem z drugiej itd, lecz w kolejności według zmiennej 1, następnie (jeśli wartości zmiennej1 były równe) według zmiennej 2, itd.
Jeśli którakolwiek tabela nie jest posortowana ani poindeksowana według tych zmiennych, zostanie zgłoszony błąd.
Jeśli użyto instrukcji by, można stosować konstrukcje: first.zmienna1 - równa 1 gdy dany wiersz jest pierwszym przetwarzanym, albo zmienna1 właśnie zmieniła wartość. last.zmienna1 - równa 1 gdy dany wiersz jest ostatnim przetwarzanym, albo zmienna1 w następnym wierszu zmieni wartość. first.zmienna2 - równa 1 gdy dany wiersz jest pierwszym przetwarzanym, albo zmienna1 lub zmienna2 właśnie zmieniły wartość. last.zmienna2 - równa 1 gdy dany wiersz jest ostatnim przetwarzanym, albo zmienna1 lub zmienna2 w następnym wierszu zmieni wartość. itd.
Merge Instrukcja merge działa tak jak set, jednak wczytuje jednocześnie po jednym wierszu z każdej tabeli.