SQL性能之EXIST,取日期字段月份
2011-11-15 10:54
267 查看
--查询变电巡视路线本月是否被其他路线给引用
SELECT *
FROM PROD_GZN_SHEET_PATROL_LINE PL
WHERE EXISTS
(SELECT PS.WORK_SHEET_ID
FROM PROD_TASK_WORK_SHEET PS
WHERE PS.WORK_SHEET_ID = PL.WORK_SHEET_ID
AND TO_CHAR(PS.TASK_BEGIN_DATE, 'MM') = 5)
AND PL.WORK_SHEET_ID != 1000961
1.这里用到了EXISTS,而非IN,IN的算法是采用笛卡儿积形式,效率远远慢于EXISTS,写法是在子查询中将两表的字段关联上
WHERE PS.WORK_SHEET_ID = PL.WORK_SHEET_ID
2. 取日期字段的月份方法
SELECT *
FROM PROD_GZN_SHEET_PATROL_LINE PL
WHERE EXISTS
(SELECT PS.WORK_SHEET_ID
FROM PROD_TASK_WORK_SHEET PS
WHERE PS.WORK_SHEET_ID = PL.WORK_SHEET_ID
AND TO_CHAR(PS.TASK_BEGIN_DATE, 'MM') = 5)
AND PL.WORK_SHEET_ID != 1000961
1.这里用到了EXISTS,而非IN,IN的算法是采用笛卡儿积形式,效率远远慢于EXISTS,写法是在子查询中将两表的字段关联上
WHERE PS.WORK_SHEET_ID = PL.WORK_SHEET_ID
2. 取日期字段的月份方法
相关文章推荐
- Sql语句varchar或nvarchar字段条件前加N的性能差异
- 求不重复的字段并返回最新日期的SQL方法
- 玩转DB2之SQL篇:从json格式字段中提取long型日期
- sqlserver sql将日期和时间字符串字段合并成datetime类型
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录
- SQL 2008日期字段默认值设置为当前日期
- SQL 以月份或日期为条件进行查询
- sql 转换日期格式 只保留月份和日期
- SQL 时间操作,日期操作,月份操作,年份操作,相加减
- Access数据库写sql 语句向日期/时间字段加入空值
- sql 某字段各种值按月份统计
- sql日期按月份和年份分组查询
- PL/SQL表中date类型的字段用getString方法取出之后的格式化为日期的方法
- SQL中把整型字段合并转日期类型
- 中等难度SQL语句(存储过程,分页,拼接字段、游标,日期类型转换,动态行转列,视图)汇总
- SQL 获取指定月份的所有日期,SQL日期分页
- sql日期显示为英文缩写月份加号数
- sql 按字段分组后取日期最新的一条
- PostgresSql日期字段比较大小
- sql截取日期时间,将日期和时间分开成2个字段