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型をあつかうでした。