valor tipos tipo poner insertar definir datos dato como campo booleano sql

tipos - tipo de dato booleano en sql server



¿Cómo generar un booleano en T-SQL basado en el contenido de una columna? (6)

Hice una vista para abstraer columnas de diferentes tablas y prefiltrarlas y clasificarlas previamente. Hay una columna cuyo contenido no me importa, pero necesito saber si el contenido es nulo o no. Entonces mi vista debe pasar un alias como " verdadero " en caso de que el valor de esta columna especificada no sea nulo y " falso " en caso de que el valor sea ​​nulo .

¿Es esto posible con T-SQL (Microsoft SQL Server 2000)?

¡Gracias por adelantado!


Si necesita una salida como booleana

CAST(CASE WHEN colName IS NULL THEN 0 ELSE 1 END as BIT) aIsBooked


para la columna en la vista puede usar algo como

CASE WHEN ColumnName is not null THEN ''True'' ELSE ''False'' END

o en una declaración

SELECT s.ID, s.[Name], CASE WHEN s.AchievedDate is not null THEN ''True'' ELSE ''False'' END [IsAchieved] FROM Schools s

o para un posterior procesamiento después yo personalmente usaría

SELECT s.ID, s.[Name], CASE WHEN s.AchievedDate is not null THEN 1 ELSE 0 END [IsAchieved] FROM Schools s


Tienes que usar una declaración CASE para esto:

SELECT CASE WHEN columnName IS NULL THEN ''false'' ELSE ''true'' END FROM tableName;


Tuve un problema similar en el que quería que una vista devolviera un tipo de columna booleana en función de si una columna real es nula o no. Creé una función definida por el usuario así:

CREATE FUNCTION IsDatePopulated(@DateColumn as datetime) RETURNS bit AS BEGIN DECLARE @ReturnBit bit; SELECT @ReturnBit = CASE WHEN @DateColumn IS NULL THEN 0 ELSE 1 END RETURN @ReturnBit END

Entonces, la vista que creé devuelve una columna de bit, en lugar de un número entero.

CREATE VIEW testView AS SELECT dbo.IsDatePopulated(DateDeleted) as [IsDeleted] FROM Company


O puedes hacer esto:

SELECT RealColumn, CAST(0 AS bit) AS FakeBitColumn FROM tblTable


Usted pidió booleano, que llamamos bit en t-sql.

Otras respuestas te han dado un varchar ''verdadero'' y ''falso'' o 1 y 0. ''verdadero'' y ''falso'' son obviamente varchar, no booleanos. Creo que 1 y 0 se lanzarán como un número entero, pero ciertamente no es un poco. Esto puede parecer quisquilloso, pero los tipos importan bastante a menudo.

Para obtener un valor de bit real, debe emitir su salida de forma explícita de la siguiente manera:

Seleccione el caso cuando tableName.columnName ES NULL y luego cast (0 como bit) else cast (1 como bit) END como ColumnLabel from tableName