在 SQL Server 中,用來處理判斷flag的字段,使用bit類型。在使用過程中有幾點需要注意的:
1、bit 與 SQL Server 的整型和數字數據相似的數字數據,但 bit 列只能存儲 0 和 1。
2、在插入、修改 bit 數據時,使用 0 或 1 ,而不是 false 或 true,bit 字段放在 where 查詢條件中也是這樣。
3、利用 RecordSet 將 bit 字段中的數據取出來後,它是 boolean 類型,而不是數字類型,即在判斷時應該使用 if rs("bitField") then,而不是 if rs("bitField")=1 then。
Transact-SQL文檔上說:
bit
整型數據 1、0 或 NULL。
注意:
不能對 bit 類型的列使用索引。
Microsoft? SQL Server? 優化用於 bit 列的存儲。如果一個表中有不多於 8 個的 bit 列,這些列將作爲一個字節存儲。
bit值類型可以取值爲 1 (true )、0 或 NULL 的整數數據類型。
當你直接打開表向這一列中插入數據是就需要插入true或false ,即表現值
當你用sql語句插入數據的時候該列就插入0(false)或1(true),0,1即實際值
這裏插入非0數據,自動轉換爲1 ,沒有插入時默認null
insert into boy values("lijiash9","beijing",23,9) true
insert into boy values("lijiash00","beijing",23,0) false
insert into boy values("lijiash111","beijing",23,1) true
insert into boy values("lijiash null","beijing",23,null) 出錯
當你在查詢分析其中用select語句讀取這個表中的這一列數據時該列數據顯示的是0或1
當你在C#等應用程序中調用sqlserver2005存儲過程是返回的結果集中這一列的值是true或false
在數據庫中存放的是0/1/NULL,自己用SQL轉:
select case 字段 when 1 then "是" when 0 then "否" else "空" end from 表
多列在一起的查詢:
select T.01,T.02,case when T.03=1 then "是"else "否" end as XianShi from T