婷婷综合国产,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的位運算功能巧妙解決多選查詢方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 和静县| 北宁市| 秭归县| 永顺县| 武功县| 凉山| 苍山县| 六枝特区| 盘山县| 安徽省| 姚安县| 郁南县| 辛集市| 卫辉市| 方正县| 大厂| 遂溪县| 钦州市| 武穴市| 东乌珠穆沁旗| 香格里拉县| 嘉禾县| 龙陵县| 东丽区| 二连浩特市| 芦溪县| 双城市| 胶州市| 克山县| 湘阴县| 青浦区| 巩义市| 高尔夫| 都匀市| 西乡县| 黄山市| 元氏县| 治多县| 河池市| 虞城县| 雷山县|