婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 通過SQL Server的位運算功能巧妙解決多選查詢方法

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

熱門標簽:蘭州語音外呼系統運營商 最新人工智能電銷機器人 成都電話外呼系統一般多少錢 陜西電銷外呼系統好用嗎 銀川高頻外呼回撥系統多少錢 如何做地圖標注圖鋪 沒聽見電話機器人幫你接 數字匠心電銷機器人 al智能電話機器人
無論使用int還是varchar,對于Status的多選查詢都是不易應對的。舉例,常規思維下對CustomerStatus的Enum設置如下:
復制代碼 代碼如下:

[Serializable]
public enum CustomerStatus
{
New = 0,
Active = 1,
Overdue = 2,
Suspended = 3,
Closing = 4,
Closed = 5
}

在數據庫中以int形式存儲了Status值。
如果我在頁面中想一次搜索狀態為Active,Overdue和Suspended狀態的Customer,該怎么辦?程序是不是得把這三個狀態值
拼成字符串傳遞給SQL去處理?雖然能實現,但是相當低效。

現在給出一個標準解決方案:
(1). 所有可能被用作搜索條件的枚舉都應按如下位運算方式定義。
復制代碼 代碼如下:

public enum CustomerStatus
{
New = 1,
Active = 11,
Overdue = 12,
Suspended = 13,
Closing = 14,
Closed = 15
}

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

(3). 查詢語句如下:
復制代碼 代碼如下:

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

如果@Status可為null時,
復制代碼 代碼如下:

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

用這樣一條簡單的語句,就可以獲取到所有符合@Status要求的數據行。
您可能感興趣的文章:
  • C# 位運算符整理
  • Erlang的運算符(比較運算符,數值運算符,移位運算符,邏輯運算符)
  • shell 基本計算、邏輯運算、位運算詳解
  • c語言中用位運算實現加法技巧介紹
  • Java中位運算(移位、位與、或、異或、非) 的簡單實例
  • C#枚舉中的位運算權限分配淺談
  • C語言位運算符:與、或、異或、取反、左移與右移詳細介紹
  • 詳細介紹Python語言中的按位運算符
  • JavaScript按位運算符的應用簡析
  • 圖文詳解C語言位運算基礎知識

標簽:朔州 通化 本溪 遼源 鹽城 邢臺 巴彥淖爾 宜春

巨人網絡通訊聲明:本文標題《通過SQL Server的位運算功能巧妙解決多選查詢方法》,本文關鍵詞  通過,SQL,Server,的,位,運算,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《通過SQL Server的位運算功能巧妙解決多選查詢方法》相關的同類信息!
  • 本頁收集關于通過SQL Server的位運算功能巧妙解決多選查詢方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 工布江达县| 德格县| 民和| 龙海市| 同江市| 双江| 化德县| 商水县| 文山县| 巫山县| 儋州市| 会东县| 天津市| 洮南市| 正蓝旗| 胶南市| 南投县| 奉贤区| 吐鲁番市| 临桂县| 湘潭市| 乌拉特前旗| 霍林郭勒市| 石泉县| 日照市| 锦州市| 大名县| 那坡县| 和平县| 达州市| 山西省| 高清| 休宁县| 随州市| 柏乡县| 大悟县| 武宣县| 龙川县| 额敏县| 贞丰县| 东莞市|