久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何通過SQL Server的位運算功能巧妙解決多選查詢方法

157次閱讀
沒有評論

共計 918 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。

本篇文章為大家展示了如何通過 SQL Server 的位運算功能巧妙解決多選查詢方法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

無論使用 int 還是 varchar,對于 Status 的多選查詢都是不易應(yīng)對的。舉例,常規(guī)思維下對 CustomerStatus 的 Enum 設(shè)置如下:復(fù)制代碼 代碼如下:
[Serializable] public enum CustomerStatus {New = 0, Active = 1, Overdue = 2, Suspended = 3, Closing = 4, Closed = 5}

在數(shù)據(jù)庫中以 int 形式存儲了 Status 值。如果我在頁面中想一次搜索狀態(tài)為 Active,Overdue 和 Suspended 狀態(tài)的 Customer,該怎么辦?程序是不是得把這三個狀態(tài)值 拼成字符串傳遞給 SQL 去處理?雖然能實現(xiàn),但是相當?shù)托А,F(xiàn)在給出一個標準解決方案:(1). 所有可能被用作搜索條件的枚舉都應(yīng)按如下位運算方式定義。復(fù)制代碼 代碼如下:
public enum CustomerStatus {New = 1, Active = 1 1, Overdue = 1 2, Suspended = 1 3, Closing = 1 4, Closed = 1 5}

(2). 在數(shù)據(jù)庫設(shè)計時,Status 的字段必須為 int 型。這樣當我們做多選查詢時 @Status 的 Value= CustomerStatus.Active | CustomerStatus. Overdue| CustomerStatus. Suspended (3). 查詢語句如下:復(fù)制代碼 代碼如下:
Select * From Customer Where [Status] @Status = [Status]

如果 @Status 可為 null 時,復(fù)制代碼 代碼如下:
Select * From Customer Where (@Status is null Or [Status] @Status = [Status])

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

上述內(nèi)容就是如何通過 SQL Server 的位運算功能巧妙解決多選查詢方法,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計918字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 汪清县| 呼伦贝尔市| 肇东市| 全南县| 确山县| 广安市| 镇宁| 甘谷县| 和顺县| 荥经县| 峨眉山市| 泰安市| 涟水县| 申扎县| 隆安县| 泽库县| 普格县| 富阳市| 乐山市| 伊金霍洛旗| 博罗县| 娱乐| 盱眙县| 桂平市| 旺苍县| 申扎县| 金堂县| 红原县| 平江县| 荥阳市| 仙游县| 乐昌市| 民县| 遂昌县| 龙江县| 吉木乃县| 甘洛县| 定远县| 盐津县| 绥化市| 龙江县|