您的位置:首页 > 数据库

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. 取日期字段的月份方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: