您的位置:首页 > 数据库

SQL语句中IN的用法

2013-11-27 15:36 204 查看
具体的逻辑是:文件分不同的DocTypeID即文件的类型 如果对文件进行处理比如说 银行等部门对单据先要进行扫描然后录入 校对等处理,那么就要分为不同的批次即不同的BatchNum 在这BatchNum 还可能有多个JobNum    
而在每个JobNum 里存放着文件,有时文件分多页 也就是PageNum       而进行到最后是将这些单据存到数据库中,只能一页一页的存,问题就出现了
在我们进行扫描 录入 校对 入库时JobState随之改变     当入库过程中,网络发生中断时, 一个JobNum 里的PageNum的JobState就不相同了我们把已入库的设置为“6“未入库的设置为“2”     
要进行事务回滚必须要找到出现异常的文件      在这里就要用的关键字“IN”SQL语句如下:
select DocTypeID,BatchNum,JobNum from JobQueue where JobState='2' and BatchNum in(select BatchNum from JobQueue where JobState='6' ) group by DocTypeID,BatchNum,JobNum"
  IN的作用就是将两条select语句的结果取并集 这样 一个JobNum 里如果既有"2"又有''6''就可以查出来

 

In:等值连接,用来查找多表相同字段的记录

Not In:非等值连接,用来查找不存在的记录

Inner join:内连接,主要用来查找都符合条件的记录

Left join:左连接,主要用来查找左边有,右边没有的用空值表达

Right join:右连接,主要用来查找右边有,左边没有的用空值表达

Order By:升序 Asc 降序 Desc

Group By:分组排序 按字段分组(如按班级分),使用的都要有集合函数存在

Having :对分组条件进行判断,使用都要确保每个字段都要用集合函数

COMPUTE BY:子句使您得以用同一 SELECT 语句既查看明细行,又查看汇总行。可以计算子组的汇总值,也可以计算整个结果集的汇总值。 

行聚合函数名称;例如,SUM、AVG、MIN、MAX 或 COUNT

insert into:主要把查询的语句插入到新表。

in的用法是where xx in ('aa','bb','cc')

相当于 where xx='aa' or xx='bb' or xx='cc'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql in