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