Einfache Antwort: Nein
SQL Server hat ein Konzept für einen booleschen Datentyp, aber keinen tatsächlichen booleschen Datentyp. Ich kann keine Spalte mit einem booleschen Datentyp deklarieren, und ich kann sie auch nicht auf diese Weise verwenden. Das Konzept der booleschen Daten ist jedoch vorhanden.
Wenn ich zum Beispiel folgendes schreibe:
SELECT *
FROM Sometable
WHERE Somecolumn = Someothercolumn
ist das Ergebnis dieses Vergleichs TRUE, FALSE oder (nicht vergessen) NULL. Und denken Sie daran, dass NULL kein Wert ist; es ist das Fehlen eines Wertes. WHERE-Klauseln sind erfüllt, wenn der Wert des Prädikats TRUE ist.
Es gibt also ein boolesches Konzept in der Sprache.
Beachten Sie jedoch, dass ich dies nicht schreiben kann:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Ich kann nicht einfach einen TRUE oder FALSE Wert zurückgeben.
Wenn ich es ohne den Alias schreibe, funktioniert es:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Aber in diesem Fall gebe ich den Wert von Someothercolumn mit dem Alias (benannt als) Somecolumn zurück. Ich gebe nicht den Vergleich zurück.
Aber ist das nicht dasselbe wie ein Bit?
Nein. Ich kann einen Bit-Wert nicht wie einen Boolean verwenden. Ich kann zum Beispiel nicht einfach das hier schreiben:
IF ISNUMERIC(’somestring‘)
BEGIN
END
Anstattdessen muss ich das hier schreiben:
IF ISNUMERIC(’somestring‘) <> 0
BEGIN
END
Beachten Sie, dass ich auch „= 1“ hätte schreiben können, aber ich bevorzuge es bei Bit-Werten, sie über alle Sprachen hinweg immer mit Null zu vergleichen, da einige Sprachen -1 für TRUE und andere 1 für TRUE verwenden.