一個(gè)有趣的SQL命題 用一條語(yǔ)句切換BIT型的真假值
更新時(shí)間:2009年08月05日 23:17:43 作者:
有個(gè)需求,用一條SQL語(yǔ)句(SQL SERVER)的,切換某個(gè)BIT字段值。也就是說(shuō)從TRUE變FALSE,從FALSE到TRUE。
當(dāng)然,第一反應(yīng)是用存儲(chǔ)過(guò)程。判斷原來(lái)這個(gè)字段值,然后UPDATE。
網(wǎng)上粗粗找了一下沒(méi)找到方案。自己一動(dòng)手,居然有個(gè)很有趣的結(jié)果,連WHERE都不用
對(duì)數(shù)據(jù)庫(kù)的BIT型賦值,用SQL語(yǔ)句來(lái)操作和用管理界面輸入不同。管理界面輸入必須用TRUE或FALSE來(lái)填寫。而SQL語(yǔ)句則用0或1
于是乎,先嘗試:
updat t set b=b+1 where id=1;
select b from t where id=1;
b字段一直保持1
那么用減號(hào)呢
update t set b=b-1 where id=1;
select b from t where id=1;
可以發(fā)現(xiàn)每次結(jié)果就在0和1之間切換,SQL SERVER把-1當(dāng)做1來(lái)處理。
這個(gè)需求很容易就解決了。
通常這在一些狀態(tài)切換(或開(kāi)關(guān))的地方會(huì)用到,在需求中不需要知道切換后的情況。很有趣也很簡(jiǎn)單,呵呵
網(wǎng)上粗粗找了一下沒(méi)找到方案。自己一動(dòng)手,居然有個(gè)很有趣的結(jié)果,連WHERE都不用
對(duì)數(shù)據(jù)庫(kù)的BIT型賦值,用SQL語(yǔ)句來(lái)操作和用管理界面輸入不同。管理界面輸入必須用TRUE或FALSE來(lái)填寫。而SQL語(yǔ)句則用0或1
于是乎,先嘗試:
復(fù)制代碼 代碼如下:
updat t set b=b+1 where id=1;
select b from t where id=1;
b字段一直保持1
那么用減號(hào)呢
復(fù)制代碼 代碼如下:
update t set b=b-1 where id=1;
select b from t where id=1;
可以發(fā)現(xiàn)每次結(jié)果就在0和1之間切換,SQL SERVER把-1當(dāng)做1來(lái)處理。
這個(gè)需求很容易就解決了。
通常這在一些狀態(tài)切換(或開(kāi)關(guān))的地方會(huì)用到,在需求中不需要知道切換后的情況。很有趣也很簡(jiǎn)單,呵呵
相關(guān)文章
sqlserver查詢?nèi)サ糁貜?fù)數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了sqlserver查詢?nèi)サ糁貜?fù)數(shù)據(jù)的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
SQL?Server表空間碎片化回收的實(shí)現(xiàn)
本文主要介紹了SQL?Server表空間碎片化回收的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
SQL Server存儲(chǔ)過(guò)程同時(shí)返回分頁(yè)結(jié)果集和總數(shù)
這篇文章主要為大家詳細(xì)介紹了SQL Server存儲(chǔ)過(guò)程同時(shí)返回分頁(yè)結(jié)果集和總數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
SQL 查詢和刪除重復(fù)字段數(shù)據(jù)的方法
這篇文章介紹了SQL 查詢和刪除重復(fù)字段數(shù)據(jù)的方法,有需要的朋友可以參考一下2013-08-08
SQL 尚未定義空閑 CPU 條件 - OnIdle 作業(yè)計(jì)劃將不起任何作用
今天在配置sql server 代理服務(wù)器的計(jì)劃任務(wù)的時(shí)候發(fā)現(xiàn)了日志中提示這個(gè)SQL 尚未定義空閑 CPU 條件 - OnIdle 作業(yè)計(jì)劃將不起任何作用信息導(dǎo)致無(wú)法執(zhí)行計(jì)劃任務(wù),那么可以按照下面的方法解決即可2021-06-06
SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法
MySQL提供了IF、IFNULL、CASE等條件判斷函數(shù),本文就來(lái)介紹一下SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法,感興趣的可以了解一下2023-10-10

