• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 根据多条件查询临时表 想得到不同结果集的方法

根据多条件查询临时表 想得到不同结果集的方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了多条件查询,不同结果集等相关知识,希望本文的分享对您有所帮助

很多情况下,需要采用多个参数来查询一张临时表,每个参数都要求得到不同的临时表结果集。而往往某些参数并不对应这张临时表中的字段,而是对应与该临时表ID关联的另一张表的字段。

当我写下如下sql语句时,我得到了输入@c参数时想得到的结果集。
select * from @tb t where t.id in (select id from tb where f = @c)
但如果有@a,@b,@c,而它们分别想从@tb中得到不同的结果集,例如
代码如下:
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,最后一次性查询
--构造@tb
select * from @tb
假如我已经通过@a,@b得到了一种@tb结果集,当我再次使用@c进行条件判断时,这样就会覆盖刚才的结果。
可以采用“删除不符合条件的记录”的方法来做,由于@tb已经得到了@a,@b想得到的结果,所以只要删除掉不符合@c的结果就行了。完。
代码如下:
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
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql进阶(五)数据表中带OR的多条件查询
  • MySQL中使用case when 语句实现多条件查询的方法
  • 根据多条件查询临时表 想得到不同结果集的方法

相关文章

  • 2018-12-05mssql2005注入方法小结
  • 2017-05-11深入解析mysql.sock不见的问题
  • 2018-12-05mysql部分替换sql语句分享
  • 2018-12-05关于慢查询优化的7篇文章推荐
  • 2017-05-11PHP之Mysql常用SQL语句示例的深入分析
  • 2018-12-05分享Mysql免安装版设置密码的3种方法
  • 2018-12-05SQL server 表操作介绍
  • 2018-12-05MySQL的中文UTF8乱码问题
  • 2018-12-05使用准则进行条件查询--1.4.从窗体中选择查询的条件
  • 2018-12-05在Oracle网络结构解决连接问题

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Mysql的基础使用之MariaDB安装方法详解_MySQL
    • [转]NoSQL数据库的分布式算法
    • mysql 常用命令集锦(Linux/Windows)
    • MySQL数据库数据存放位置修改
    • 在SQL查询中使用LIKE来代替IN查询的方法
    • 收集的ORACLE函数大全
    • SuperSocket 信息: (SpnRegister) : Error 1355。解决方法
    • Mysql主从同步备份策略分享
    • Oracle 数据 使用游标
    • MySQL: mysql is not running but lock exists 的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有