一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(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 - 根據(jù)多條件查詢臨時(shí)表 想得到不同結(jié)果集的方法

根據(jù)多條件查詢臨時(shí)表 想得到不同結(jié)果集的方法

2019-11-18 15:03mssql教程網(wǎng) Sql Server

很多情況下,需要采用多個(gè)參數(shù)來(lái)查詢一張臨時(shí)表,每個(gè)參數(shù)都要求得到不同的臨時(shí)表結(jié)果集。而往往某些參數(shù)并不對(duì)應(yīng)這張臨時(shí)表中的字段,而是對(duì)應(yīng)與該臨時(shí)表ID關(guān)聯(lián)的另一張表的字段。

當(dāng)我寫下如下sql語(yǔ)句時(shí),我得到了輸入@c參數(shù)時(shí)想得到的結(jié)果集
select * from @tb t where t.id in (select id from tb where f = @c) 
但如果有@a,@b,@c,而它們分別想從@tb中得到不同的結(jié)果集,例如 

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


if @a is not null 
begin 
--得到@a想得到的 
end 
if @b is not null 
begin 
--得到@b想得到的 
end 
if @c is not null 
begin 
--得到@c想得到的 
end 


這樣做好像沒什么問題,但如果@a和@b是一起的,甚至是@a,@b,@c,@d,@e,@f等等N多種條件組合,這樣就不好辦了。所以必須先build好@tb,最后一次性查詢 
--構(gòu)造@tb 
select * from @tb 
假如我已經(jīng)通過@a,@b得到了一種@tb結(jié)果集,當(dāng)我再次使用@c進(jìn)行條件判斷時(shí),這樣就會(huì)覆蓋剛才的結(jié)果。 
可以采用“刪除不符合條件的記錄”的方法來(lái)做,由于@tb已經(jīng)得到了@a,@b想得到的結(jié)果,所以只要?jiǎng)h除掉不符合@c的結(jié)果就行了。完。 

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


if @c is not null 
begin 
delete c from @tb c where c.id not in (select id from tb where f = @c) 
end 
select * from @tb 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 丰满大屁股美女一级毛片 | 青青五月天 | 成人久久18网站 | 国产亚洲精品自在线亚洲情侣 | 亚洲女性色尼古综合网 | 亚洲精品国产在线 | 国产女主播福利在线 | 青青青国产手机在线播放 | 第一次出血videos | 亚洲va久久久噜噜噜久久狠狠 | 久久久精品3d动漫一区二区三区 | 大乳一级一区二区三区 | 我的年轻漂亮继坶三级 | 小柔的性放荡羞辱日记动漫 | 国产喂奶300部 | 欧美人做人爱a全程免费 | 国产精品久久久久久 | www.com在线观看 | 色中色破解版 | 日本高清视频一区二区 | 欧美久久天天综合香蕉伊 | 久久热在线视频精品店 | 亚洲国产日韩制服在线观看 | 我把寡妇日出水好爽 | 日本五级床片全都免费播放 | 久久日韩精品无码一区 | 我要看免费毛片 | 久久成人伊人欧洲精品AV | 免费91麻豆精品国产自产在线观看 | 2012在线观看免费视频大全 | yellow片在线观看 | 色女的乖男人 | 欧美xingai | 偷偷操不一样 | 亚洲视频一区二区在线观看 | 久久国产乱子伦精品免费不卡 | 日本在线不卡免 | 日日网 | 肉文小说 | 被黑人同学彻底征服全文小说阅读 | 甜蜜惩罚小说 |