J'ai une table (SQL Server) qui contient 3 types de résultats: FLOAT, NVARCHAR (30) ou DATETIME (3 colonnes séparées). Je veux m'assurer que pour une ligne donnée, une seule colonne a un résultat et les autres colonnes sont NULL. Quelle est la contrainte de vérification la plus simple pour y parvenir?
Le contexte pour cela est d'essayer de moderniser la possibilité de capturer des résultats non numériques dans un système existant. L'ajout de deux nouvelles colonnes à la table avec une contrainte pour empêcher plus d'un résultat par ligne était l'approche la plus économique, pas nécessairement la bonne.
Mise à jour: Désolé, type de données snafu. Malheureusement, je ne voulais pas que les types de résultats indiqués soient interprétés comme des types de données SQL Server, juste des termes génériques, corrigés maintenant.
la source
Voici une solution PostgreSQL utilisant les fonctions de tableau intégrées :
la source