sql问题 假设r是一个关系,a是其中的属性(数值型的),下面的sql执行是否有问题,执行过程是怎样的?delete from rwhere a < (select arg(a) from r) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以。(select arg(a) from r)得到a的平均值。然后根据这个平均值在r表里过滤数据。 eygle@SZTYORA> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC T---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- -------------------------- ---------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO 7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30 CHICAGO 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 CHICAGO 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGO 7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30 CHICAGO 7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 DALLAS 7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20 DALLAS 7788 SCOTT ANALYST 7566 0087-07-13 00:00:00 3000 20 DALLAS 7876 ADAMS CLERK 7788 0087-07-13 00:00:00 1100 20 DALLAS 7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20 DALLAS 7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 NEW YORK 7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10 NEW YORK 7934 MILLER CLERK 7782 1982-01-23 00:00:00 5001 10 NEW YORK已选择14行。eygle@SZTYORA> delete from emp 2 where sal>(select avg(sal) from emp);已删除7行。-- 就是这样的做法!不要怀疑自己,既然怀疑自己的话,何不动手去揭开迷团呢? 最近看书的时候,书上说上面的语句会出问题。我想知道是sql标准规范了先扫描后执行的操作,还是具体数据库规范了这个操作。上面的语句在mysql下会报错。 -- 悲哀:现在才提到”上面的语句在mysql下会报错“,这是Oracle版,你早干嘛去啦?-- 你应该到mysql版下去发贴子才对啊! 我的意思是说,在sql标准中,有没有对上面语句执行过程的解释。而不是具体到oracle或mysql等不同数据库的层面上。因为oracle上牛人比较多,所以发到这上面了,导致大家误会了,请见谅。 求平均不是arg()函数,是avg()才对喔.SQL语法没问题的. delete from rwhere a < (select avg(a) from r) oracle导出和导入数据 关于一句PLSQL文,没看懂,求大神解释,谢谢啦,都来看看 关于group by sql语句再优化,看看能否帮助提高效率, pl/sql developer中建立sql server的链接 请教一个外键的问题 session失效时间相关问题请教 删除多余的数据库 **********************请教********************* 对数据库大的表update的时候该怎么优化? 创建主键自增长的触发器出错!!! 50分求sql高手写一条复杂的sql语句,会sql的都请进
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- -------------------------- ----------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30 CHICAGO
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGO
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30 CHICAGO
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 DALLAS
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20 DALLAS
7788 SCOTT ANALYST 7566 0087-07-13 00:00:00 3000 20 DALLAS
7876 ADAMS CLERK 7788 0087-07-13 00:00:00 1100 20 DALLAS
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20 DALLAS
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 NEW YORK
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10 NEW YORK
7934 MILLER CLERK 7782 1982-01-23 00:00:00 5001 10 NEW YORK已选择14行。eygle@SZTYORA> delete from emp
2 where sal>(select avg(sal) from emp);已删除7行。-- 就是这样的做法!不要怀疑自己,既然怀疑自己的话,何不动手去揭开迷团呢?
-- 你应该到mysql版下去发贴子才对啊!
SQL语法没问题的.
where a < (select avg(a) from r)