SQLServerでTrue,FalseのようなBoolean型をあつかう

プログラミング SQL Server

SQLServerには「Boolean」という型はありません。そこで、Boolean型のような「true」、「false」をあつかうには「bit型」を利用します。

スポンサーリンク

SQLServerでBoolean型を扱う

SQLServerには「Boolean」という型はありません。

そこで、Boolean型のような「true」、「false」をあつかうには「bit型」を利用します。

SQLserverの「Bit型」

SQLServerのHelpで「bit型」の説明に

文字列値 TRUE および FALSE は、bit 値に変換することができます。TRUE は 1 に変換され、FALSE は 0 に変換されます。

とあるのでそれを素直に使います。

-------------------------
--テーブルを作成する
-------------------------
CREATE TABLE test_tbl (
     idx      INT
    ,name    VARCHAR(20)
    ,chk_flg BIT
)

-------------------------
--データを作成する
-------------------------
INSERT INTO test_tbl VALUES( 1, '太郎さん', 'true' )
INSERT INTO test_tbl VALUES( 2, '次郎さん', 'false' )
INSERT INTO test_tbl VALUES( 3, '三郎さん', 'true' )

-------------------------
--データを検索する
-------------------------
SELECT
     idx
    ,name
    ,chk_flg
FROM
    test_tbl
ORDER BY
    idx

-------------------------
--テーブルを削除する
-------------------------
DROP TABLE test_tbl

実行結果は

idx name chk_flg
1 太郎さん 1
2 次郎さん 0
3 三郎さん 1

です。

chk_flgが「true」と「false」で「1」と「0」に変換されているのがわかると思います。

SQLServerのHelpにあるとおり

SELECT
     CONVERT( bit, 'true' )   AS chk_flg_true
    ,CONVERT( bit, 'false' )  AS chk_flg_false

でも

chk_flg_true chk_flg_false
1 0

と同じ結果を得られます。

以上、SQLServerでTrue,FalseのようなBoolean型をあつかうでした。

タイトルとURLをコピーしました