激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

香港云服务器
服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Sql Server - 通過(guò)SQL Server的位運(yùn)算功能巧妙解決多選查詢方法

通過(guò)SQL Server的位運(yùn)算功能巧妙解決多選查詢方法

2019-12-13 11:32MSSQL教程網(wǎng) Sql Server

項(xiàng)目中很多業(yè)務(wù)對(duì)象的數(shù)據(jù)表中都具有Status字段,有人使用int型保存Status,有人使用varchar型

無(wú)論使用int還是varchar,對(duì)于Status的多選查詢都是不易應(yīng)對(duì)的。舉例,常規(guī)思維下對(duì)CustomerStatus的Enum設(shè)置如下: 

復(fù)制代碼代碼如下:


[Serializable] 
public enum CustomerStatus 

New = 0, 
Active = 1, 
Overdue = 2, 
Suspended = 3, 
Closing = 4, 
Closed = 5 


在數(shù)據(jù)庫(kù)中以int形式存儲(chǔ)了Status值。 
如果我在頁(yè)面中想一次搜索狀態(tài)為Active,Overdue和Suspended狀態(tài)的Customer,該怎么辦?程序是不是得把這三個(gè)狀態(tài)值 
拼成字符串傳遞給SQL去處理?雖然能實(shí)現(xiàn),但是相當(dāng)?shù)托А?nbsp;

現(xiàn)在給出一個(gè)標(biāo)準(zhǔn)解決方案: 
(1). 所有可能被用作搜索條件的枚舉都應(yīng)按如下位運(yùn)算方式定義。 

復(fù)制代碼代碼如下:


public enum CustomerStatus 

New = 1, 
Active = 1<<1, 
Overdue = 1<<2, 
Suspended = 1<<3, 
Closing = 1<<4, 
Closed = 1<<5 


(2). 在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),Status的字段必須為int型。 
這樣當(dāng)我們做多選查詢時(shí)@Status的Value= CustomerStatus.Active | CustomerStatus. Overdue| CustomerStatus. Suspended 

(3). 查詢語(yǔ)句如下: 

復(fù)制代碼代碼如下:


Select * 
From Customer 
Where [Status] & @Status = [Status] 


如果@Status可為null時(shí), 

復(fù)制代碼代碼如下:


Select * 
From Customer 
Where ( @Status is null Or [Status] & @Status = [Status]) 


用這樣一條簡(jiǎn)單的語(yǔ)句,就可以獲取到所有符合@Status要求的數(shù)據(jù)行。

延伸 · 閱讀

精彩推薦
332
主站蜘蛛池模板: 精品国产一区二区三区免费 | 男女羞羞视频 | 精品久久久久久久久亚洲 | 精品国产99久久久久久宅男i | 激情在线观看视频 | 一级黄色大片在线观看 | 久久久噜噜噜久久熟有声小说 | 国产一级桃视频播放 | 黄色网址电影 | 最新久久免费视频 | 国产分类视频 | 91高清完整版在线观看 | 羞羞网站视频 | 久久久久国产一区二区三区不卡 | 他也色在线视频 | 久久99国产综合精品 | 中文字幕在线资源 | 一级做a爱片性色毛片 | 免费a视频在线观看 | 亚洲免费观看视频 | 精品一区二区三区免费毛片 | 日本欧美中文字幕 | 广州毛片 | 亚洲最大中文字幕 | 日本黄免费 | 亚洲精品午夜电影 | 国产papa | 欧美人与禽性xxxxx杂性 | 国产又粗又爽又深的免费视频 | 人成免费网站 | 久草在线资源观看 | 久久人人爽人人爽人人片av免费 | 久色成人 | 久久一本日日摸夜夜添 | 精品国产一区二区三区四区在线 | 成人免费在线视频播放 | 日韩激情 | 欧美成人a | 日韩字幕在线观看 | 中文字幕欧美在线 | 久久亚洲精品11p |