Saya memiliki tabel (SQL Server) yang berisi 3 jenis hasil: FLOAT, NVARCHAR (30), atau DATETIME (3 kolom terpisah). Saya ingin memastikan bahwa untuk setiap baris yang diberikan, hanya satu kolom yang memiliki hasil dan kolom lainnya adalah NULL. Apa kendala pemeriksaan paling sederhana untuk mencapai ini?
Konteks untuk ini adalah mencoba memperbaiki kemampuan untuk menangkap hasil non-numerik ke dalam sistem yang ada. Menambahkan dua kolom baru ke tabel dengan kendala untuk mencegah lebih dari satu hasil per baris adalah pendekatan yang paling ekonomis, tidak harus yang benar.
Pembaruan: Maaf, tipe data snafu. Sayangnya saya tidak bermaksud tipe hasil yang ditunjukkan ditafsirkan sebagai tipe data SQL Server, hanya istilah umum, diperbaiki sekarang.
sumber
Berikut ini adalah solusi PostgreSQL menggunakan fungsi array bawaan :
sumber