sql语句优化
ORACLE中用到如下语句:
select A,B,C from tableName where
TO_CHAR(A,'yyyy-MM-dd') like '2009-11-09' and B = '600' and A = (select max(A) from tableName where B = '600')
or TO_CHAR(A,'yyyy-MM-dd') like '2009-11-09' and B = '603' and A = (select max(A) from tableName where B = '603')
or TO_CHAR(A,'yyyy-MM-dd') like '2009-11-09' and B = '606' and A = (select max(A) from tableName where B = '606')
or TO_CHAR(A,'yyyy-MM-dd') like '2009-11-09' and B = '609' and A = (select max(A) from tableName where B = '609')
or TO_CHAR(A,'yyyy-MM-dd') like '2009-11-09' and B = '611' and A = (select max(A) from tableName where B = '611')
上述代码中,重复部分比较多,能否简化??
SQL code:
select t.* from tableName t where b in ('600','603','606','609','611') and a = (select max(a) from tableName where b in ('600','603','606','609','611') and b = t.b)
select t.* from tableName t where b in ('600','603','606','609','611') and not exists (select 1 from tableName where b in ('600','603','606','609','611') and b = t.b and a > t.a)
TO_CHAR(A,'yyyy-MM-dd') ='2009-11-09'
表名是tableName
A &
相关问答:
大家帮忙看看这2个sql语句哪个查询的速度更快点。谢谢帮忙。比较着急。在做性能测试。
select * from
表A LEFT OUTER JOIN 表B ON (表A.id || ' ' =表B.id) ,表C , 表D, 表E
Where其他条件
select * ......
access 中执行sql update语句时有时候成功有时候不成功,但是access中不出错误信息,不知道是什么原因,有哪位大侠知道,请帮忙啊
贴SQL语句,检查表、字段的有效性设置
sql 在查询分析器里面 执行很正常
是 ......
直接启动 点了等一会儿就没反应了 去服务那里启动会出现如下提示
出现“本地计算机上的MSSQLSERVER服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的
然后还有什么什么不存在
......
现在有a1,a2两表
a1
id name aa cc
001 aaaa bbb cc
002 bbb bbb bbb
003 ccc ccc ccc
004 ddd ddd ddd
005 eee eee eee
a2
id ida2 ff b ......
我的Tblworkbill表的数据如下:
id workbillno ..................
1 1
2 6
3 a1
4 c2
5 2
6 aa
7 ......