Tengo una tabla (SQL Server) que contiene 3 tipos de resultados: FLOAT, NVARCHAR (30) o DATETIME (3 columnas separadas). Quiero asegurarme de que para cualquier fila dada, solo una columna tenga un resultado y las otras columnas sean NULL. ¿Cuál es la restricción de verificación más simple para lograr esto?
El contexto para esto es tratar de adaptar la capacidad de capturar resultados no numéricos en un sistema existente. Agregar dos nuevas columnas a la tabla con una restricción para evitar más de un resultado por fila fue el enfoque más económico, no necesariamente el correcto.
Actualización: Lo siento, tipo de datos snafu. Lamentablemente, no tenía la intención de que los tipos de resultados indicados fueran interpretados como tipos de datos de SQL Server, solo términos genéricos, corregidos ahora.
fuente
Aquí hay una solución PostgreSQL que utiliza las funciones de matriz integradas :
fuente