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

当我写下如下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

时间: 2024-09-20 08:39:09

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

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

当我写下如下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 -

SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法_MsSql

复制代码 代码如下: SET @SQL = 'SELECT * FROM Comment with(nolock) WHERE 1=1    And (@ProjectIds Is Null or ProjectId = @ProjectIds)    And (@Scores is null or Score =@Scores)' 印象中记得,以前在做Oracle开发时,这种写法是会导致全表扫描的,用不上索引,不知道Sql Server里是否也是一样呢,于是做一个简单的测试1.建立测试用的表结

分享:在存储过程中使用另一个存储过程返回的查询结果集的方法_MsSql

很多查询类的存储过程会返回一个表结构的结果集,如果在其他存储过程中需要用到这个结果集,为了避免编写重复的sql脚本,可以直接使用前者的查询结果. 如,存储过程sp_GetBorrowRecord @BeginTime,@EndTime 可以查询出某一时间范围(开始时间@BeginTime,结束时间@EndTime)内的所有借书记录.这个存储过程可以用于对借书记录的查询页面.       现在需要实现另一个功能:将某时间段内的借书记录进行汇总分析.如按被借阅的书籍类型进行分组,并按各类书籍的借书总

SQL 查询和删除重复字段数据的方法_MsSql

例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           

[NHibernate]条件查询Criteria Query

 目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点又回到使用sql的年代.但是完全不用hql也不是绝对的,HQL更接近原生态的sql,对于一些比较复杂的查询,HQL的作用就体现出来了.作为使用面向对象语言的程序员,有时更愿意采用面向对象的方式去思考问题,去实现查询,这就是本篇文章要学习的条件查询(Criteria Query). 文档与系列文章

多字段,任意组合条件查询(0建模) - 毫秒级实时圈人 实践

标签 PostgreSQL , 数组 , GIN索引 , 任意字段组合查询 , 圈人 , ToB分析型业务 , 建模 背景 你也许在一家ToB的数据分析公司,你可能设计了一张表(包括用户标识,及若干已经统计好的的属性值),你也许收集了一些用户的数据,你也许要为客户提供报表,你也许需要为客户提供任意属性值的组合查询,并快速的返回结果给用户. 这些需求应该是非常常见的ToB的数据平台公司的形态,头痛的问题无法建模,因为B端的需求无法捉摸,任意组合查询.要求实时响应. 你的客户数据也许有几十亿上百亿,

MVC 多条件查询,带分页的

问题描述 MVC 多条件查询,带分页的 这是绑定的代码,获取前台 Request.Form[""name""],后怎么增加查询条件 page = page == null ? 1 : page; rows = rows == null ? 1 : rows; List<TBL_M_SECURITY_STAFF> list = db.TBL_M_SECURITY_STAFF.OrderBy(a => a.Security_Staff_ID).Skip

使用准则进行条件查询--1.4.从窗体中选择查询的条件

4.从窗体中选择查询的条件 前面的方法虽然简单,但对用户来说操作不够方便,对设计者来说也难以控制,如果通过窗体来实现,这些问题就可以解决了. 如下面的窗体,运行时用户可以在组合框中选择要查询司机的姓名,按下查询按钮就可以看到查询的结果. 下面详细地列出设计的步骤: 创建一个窗体,按下控件向导按钮,在窗体上添加一个组合框.在第一个对话框中选择"我想让组合框在一个表或查询中查找这些值",下一步. 选择一个为组合框提供数据的表或查询.下一步. 选择组合框中要显示的数据,通常除了选择要显示在组

ASP项目中的通用条件查询模块

一.提出问题:    在大型的ASP项目中,都涉及到了条件查询这一功能.用户要求能够针对特定的字段进行查询.对于有些数据,是从多个表取出来的,因此也要能对多个表进行查询.    一般的话,大多数的做法就是每个程序都做一个查询功能,因为每个查询的表都不同,涉及的字段也不同.但是,如果在大型的ASP项目中这么做的话,不仅增加了工作量.影响开发进度,而且不能使系统模块化.代码复用,增加了系统维护难度.因此,我们有必要使条件查询模块化. 二.解决思路:    我们设计条件查询的功能为:    1.选择查