Prosta odpowiedź: Nie
SQL Server ma koncepcję typu danych boolean, ale nie ma rzeczywistego typu danych boolean. Nie mogę zadeklarować kolumny z typem danych boolean i nie mogę jej używać w ten sposób. Jednakże, koncepcja danych boolean jest obecna.
Na przykład, jeśli napiszę następujące polecenie:
SELECT *
FROM Sometable
WHERE Somecolumn = Someothercolumn
wynikiem tego porównania jest TRUE, FALSE lub (nie zapomnij) NULL. I pamiętaj, że NULL nie jest wartością; jest to brak wartości. Klauzule WHERE są spełnione, gdy wartość predykatu jest TRUE.
Więc, w języku istnieje pojęcie boolean.
Jednak zauważ, że nie mogę napisać tego:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Nie mogę po prostu zwrócić wartości TRUE lub FALSE.
Jeśli napiszę to bez aliasu, to będzie działać:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Ale w tym przypadku zwracam wartość Someothercolumn aliasowaną (nazwaną jako) Somecolumn. Nie zwracam porównania.
Ale czy to nie jest to samo co bit?
Nie. Nie mogę użyć wartości bitowej jak boolean. Na przykład, nie mogę po prostu napisać tego:
IF ISNUMERIC(’somestring')
BEGIN
END
Zamiast tego muszę napisać to:
IF ISNUMERIC(’somestring') <> 0
BEGIN
END
Zauważ, że mogłem napisać „= 1”, ale wolę z wartościami bitowymi, aby zawsze porównywać je do zera we wszystkich językach, biorąc pod uwagę, że niektóre języki używają -1 dla TRUE, a inne używają 1 dla TRUE.