Eenvoudig antwoord: Nee
SQL Server heeft een concept van een booleaans datatype, maar het heeft geen echt booleaans datatype. Ik kan geen kolom declareren met een booleaans datatype, en ik kan het ook niet op die manier gebruiken. Het concept van booleaanse data is echter wel aanwezig.
Als ik bijvoorbeeld het volgende schrijf:
SELECT *
FROM Sometable
WERE Somecolumn = Someothercolumn
de uitkomst van die vergelijking is TRUE, FALSE, of (niet vergeten) NULL. En onthoud dat NULL geen waarde is; het is het ontbreken van een waarde. WHERE clausules zijn tevreden als de waarde van het predicaat TRUE is.
Er is dus een booleaans concept in de taal.
Merk echter op dat ik dit niet kan schrijven:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Ik kan niet zomaar een TRUE of FALSE waarde teruggeven.
Als ik het zonder alias schrijf, werkt het wel:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
maar in dat geval retourneer ik de waarde van Someothercolumn gealiased (genoemd als) Somecolumn. Ik retourneer niet de vergelijking.
Maar is dat niet hetzelfde als een bit?
Nee. Ik kan een bit waarde niet als een boolean gebruiken. Ik kan bijvoorbeeld niet gewoon dit schrijven:
IF ISNUMERIC(‘somestring’)
BEGIN
END
In plaats daarvan moet ik dit schrijven:
IF ISNUMERIC(‘somestring’) <> 0
BEGIN
END
Merk op dat ik ook “= 1” had kunnen schrijven, maar ik geef er de voorkeur aan om bij bitwaarden altijd in alle talen met nul te vergelijken, aangezien sommige talen -1 voor TRUE gebruiken en andere 1 voor TRUE.