好的SQL收集 不断更新中
1.求1..10偶数之和
select sum(level) from dual
where mod(level,2)=0
connect by level
2.将update改换成用rowid来实现。
(1)新的写法:
merge into SNAPSHOT120_2010_572 t1
using (select a.rowid rid, b.vip_level, b.manager_name
from xyf_vip_info_new b, snapshot120_2010_572 a
where b.sub_id = a.sub_id) t2
on (t1.rowid=t2.rid)
when matched then
update set t1.vip_level=t2.vip_level, t1.vip_manager=t2.manager_name
when not matched then
insert (t1.vip_level) values (null);
(2)新奇的写法
UPDATE (SELECT a.vip_level, a.vip_manager,b.vip_level AS b_vip_level, b.manager_name
from snapshot120_2010_572 a,xyf_vip_info_new b
WHERE b.sub_id = a.sub_id
)
SET vip_level = b_vip_level,vip_manager=manager_name;
3.求各个分值和总的数目
select decode(grouping(a.com_name),1,'员工总数',a.com_name),count(b.com_id)
from a,b
where a.com_id=b.com_id
group by rollup(a.com_name);
4. 回滚数据到特定时间
select *
from oj_group
as of timestamp to_date(sysdate,'yyyymmdd hh24:mi:ss' )
相关文档:
--select name from sysobjects where type='U' order by name
SELECT
(case when a.colorder=1 then d.name else '' end) 表名,
-- a.colorder 字段序号,
a.name 字段名,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
(case when (SELECT count(* ......
如: 表:consume_record
字段:consume (money类型) date (datetime类型)
请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量.
如:1月 1200元
2月 3400元
3月 2800元
--按日
select sum(consume),day([date]) from& ......
一、创建一张空表:
Sql="Create TABLE [表名]"
二、创建一张有字段的表:
Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))
字段类型:
2 : "SmallInt", // 整型
3 : "Int", ......
select *
from (
select soft.NETMODEL,
soft.softname,
soft.softid ......
1)不知大家是否喜欢使用‘NOT IN’这样的操作,如果是,那尽量使用(NOT) EXISTS 替代
2)在海量查询时尽量少用格式转换。
3)查询海量数据是,可以使用optimizer['ɔptimaizə] hints,例如/*+ORDERED */
尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。
不用NOT IN操作符,可以 ......