北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收

sqlserver 2008存儲過程 多個可空條件任意組合

9/1/2015來源:SQL技巧人氣:1524

sqlserver 2008存儲過程 多個可空條件任意組合 Posted on 2015-05-22 17:54 howking 閱讀(...) 評論(...) 編輯 收藏

很多程序員在實際開發中,經常遇到這種情況,列表上方有很多條件,包含下拉框,輸入框等等,這些條件都可以不輸入,如果我們需要寫一個存儲過程,很多條件挨個判斷是否為空,且進行任意組合,任何一個開發人員都會瘋的。閑話少說,接下來舉例說明:

create PRoc myproc

@condition1 varchar(50)=null,

@condition2 int=null,

@condition3 bit

as

select col1,col2 from table

where col3=isnull(@condition1,col3)

and col4=isnull(@condition2,col4)

and col5=isnull(@condition3,col5)

以上代碼中用到的ISNULL函數是sqlserver的內置函數,如果第一個參數為null,就會返回后面的值,如果where 后有col3=col3這樣的東西,可能會影響一些效率,但是畢竟解決問題了。美中不足的是,這個內置函數只在2008(含)以上版本里有,用2005的,趕緊升級吧。

也有人在存儲過程里拼接sql 字符串,然后使用exec來執行字符串,存儲過程的優勢就是其已經通過編譯了,速度比較快,一旦用exec來執行字符串,仍舊會比較慢,因為數據庫要先編譯你的字符串。

以上是個人淺見,歡迎拍磚。



pk10有什么方法平刷
北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收
宁夏11选5第107期 河北快三开奖软件 九乐棋牌游戏大厅下载 平刷王时时彩计划软件 20码大包围中特 bbin波音公司 九乐棋牌官方网站下载 北京pk10谁控制的 11选5任稳赚不赔