经典sql语句

1.查询和关闭锁表session

Select v2.username, v2.sid, v2.serial#, v2.logon_time
  From v$locked_object v1, v$session v2
 Where v1.session_id = v2.sid
 order by v2.logon_time;
 
 alter       system       kill       session       '26,6469';

2.统计 (相当于查找选了所有课程的学生)

select distinct(test.person_age)
  from test
 where test.person_age in
       (select test.person_age
          from test
         group by test.person_age
        having count(*) = (select count(distinct(test.person_sex)) from test));

3.复制表(只复制结构,源表名:a 新表名:b)
SQL:   SELECT * INTO b FROM a WHERE 1<>1

4.拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL:   INSERT INTO b(a, b, c)
   SELECT d, e, f FROM b

5.找出表中某一列相同的数据行
select  *from  table  where  (column  in(select  column  from  table  group  by  column  having  count(*)> 1)

6.如何取得表中第6到第10条记录的值

假设ddl语句如下:
  CREATE TABLE T(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)
  那么第一种方法就是取出前5条,再取出前10条,然后采用集合运算的方法把前10条减去前5条就OK了,SQL语句如下:

  SELECT * FROM T WHERE ROWNUM <= 10
  MINUS
  SELECT * FROM T WHERE ROWNUM <= 5;
  另外一种方法,采用子查询:
  子查询的这种方法相对比较复杂一点,不过性能要比刚才的集合相减要好一些。这种方法首先在子查询中得到前10条数据,顺路也取得前10条数据的rownum,然后再一次查询的时候取得刚才查询的rownum大于5的那些数据。SQL语句如下:
  SELECT ID, VALUE FROM
  (SELECT ID, VALUE, ROWNUM R FROM T WHERE R <=10)
  WHERE
  R > 5;
  通过上面的语句,就得到了6到第10条数据了。

8.分数大于80分的记录赋给A,60至80的赋给B,小于60的赋给C

   select t.id,t.score, (case  when t.score>=80 then 'A' when t.score>=60 and t.score < 80 then 'B'  when t.score < 60 then 'C' end) as dd from test t;

或者

   select t.id,t.score, (case  when t.score>=80 then 'A' when t.score between 60 and t 80 then 'B'  when t.score < 60 then 'C' end) as dd from test t;

9.基表、视图的拷贝,包含了表结构和数据

         create table emp2 as select * from emp1;

10.如何用SQL快捷的获取Oracle版本信息,可以用以下两句SQL:

          select * from PRODUCT_COMPONENT_VERSION;

  • select * from v$version;

两句SQL语句都可以取得Oracle版本信息,只是信息展现的方式不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值