Mam tabelę (SQL Server), która zawiera 3 typy wyników: FLOAT, NVARCHAR (30) lub DATETIME (3 osobne kolumny). Chcę się upewnić, że dla dowolnego wiersza tylko jedna kolumna ma wynik, a pozostałe kolumny mają wartość NULL. Jakie jest najprostsze ograniczenie sprawdzające, aby to osiągnąć?
Kontekstem tego jest próba ponownego wprowadzenia możliwości przechwytywania wyników nienumerycznych w istniejącym systemie. Dodanie dwóch nowych kolumn do tabeli z ograniczeniem, aby zapobiec więcej niż jednemu wynikowi na wiersz, było najbardziej ekonomicznym podejściem, niekoniecznie poprawnym.
Aktualizacja: Przepraszamy, typ danych snafu. Niestety nie zamierzałem interpretować typów wyników wskazanych jako typy danych SQL Server, tylko ogólne terminy, teraz naprawione.
źródło
Oto rozwiązanie PostgreSQL wykorzystujące wbudowane funkcje tablicowe :
źródło