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