簡単な答えです。 いいえ
SQL Serverには、booleanデータ型の概念はありますが、実際のbooleanデータ型はありません。 ブーリアン データ型を持つ列を宣言することはできませんし、そのように使用することもできません。
例えば、次のように書くと、
SELECT *
FROM Sometable
WHERE Somecolumn = Someothercolumn
その比較の結果は、TRUE、FALSE、または(忘れてはならない)NULLとなります。 そして、NULLは値ではなく、値がないことを意味することを覚えておいてください。
このように、言語にはブーリアンの概念があります。
しかし、次のようには書けないことに注意してください:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
単に TRUE または FALSE の値を返すことはできません。
エイリアスを使わずに書けば、次のように動作します:
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
しかし、この場合、Somecolumnにエイリアスをつけた(名前をつけた)Someothercolumnの値を返しています。
でも、それってビットと同じじゃないですか?
いいえ、ビット値をブール値のように使うことはできません。 例えば、次のように書くことはできません:
IF ISNUMERIC(‘somestring’)
BEGIN
END
代わりに、次のように書かなければなりません。
IF ISNUMERIC(‘somestring’) <> 0
BEGIN
END
なお、「= 1」と書くこともできましたが、ビット値の場合、ある言語では-1をTRUEとし、別の言語では1をTRUEとするため、すべての言語で常に0と比較することを希望しています。