Ich habe eine (SQL Server-) Tabelle, die drei Arten von Ergebnissen enthält: FLOAT, NVARCHAR (30) oder DATETIME (3 separate Spalten). Ich möchte sicherstellen, dass für eine bestimmte Zeile nur eine Spalte ein Ergebnis hat und die anderen Spalten NULL sind. Was ist die einfachste Prüfbedingung, um dies zu erreichen?
Der Kontext hierfür ist der Versuch, die Fähigkeit zur Erfassung nicht numerischer Ergebnisse in einem vorhandenen System nachzurüsten. Das Hinzufügen von zwei neuen Spalten zur Tabelle mit einer Einschränkung, um mehr als ein Ergebnis pro Zeile zu verhindern, war der wirtschaftlichste Ansatz, nicht unbedingt der richtige.
Update: Sorry, Datentyp snafu. Leider hatte ich nicht die Absicht, die angegebenen Ergebnistypen als SQL Server-Datentypen zu interpretieren, sondern nur als allgemeine Begriffe, die jetzt behoben wurden.
quelle
Hier ist eine PostgreSQL-Lösung mit den integrierten Array-Funktionen :
quelle