Rekord z wariantami – rodzaj rekordu, posiadającego tę właściwość, że zbiór rekordów posiada wspólny typ, lecz różną postać, określoną aktualną wartością specjalnego pola znacznikowego.
Pola wariantowe Rekord jest strukturą, agregatem danych, składającą się z pól rozmieszczonych kolejno w pamięci, zgodnie z deklaracją rekordu. W przypadku rekordu z wariantami, część pól – a konkretnie pól wariantowych – może być rozmieszczona w pamięci począwszy od tego samego adresu pamięci. Pola te (lub grupy pól stanowiące jeden z wariantów), mogą być różnego typu.
Przykład w języku Pascal: type adres=record kod : string; poczta : string; case wies : Boolean of True : (nazwa : string; numer : integer); False: (ulica : string; numer : integer mieszkanie : integer); end;
Jeżeli adres dotyczy wsi (wartość pola wies=True), to rekord składał się będzie z pól: kod, poczta, wies, nazwa, numer; Jeżeli adres dotyczy miasta (wartość pola wies=False), to rekord składał się będzie z pól: kod, poczta, wies, ulica, numer, mieszkanie; przy czym pole nazwa i ulica zlokalizowane będą w pamięci począwszy od tego samego adresu pamięci operacyjnej.