FROM cust,rcvbles
WHERE cust.customer_id = rcvlbes.customer_id
AND rcvblls.balance>0
ORDER BY cust.name
INTO TEMP cust_with_balance
然后以下面的方式在临时表中查询:
SELECT * FROM cust_with_balance
WHERE postcode>98000
临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘
I/O,所以查询工作量可以得到大幅减少。
注意:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意
不要丢失数据。
7.用排序来取代非顺序存取
非顺序磁盘存取是最慢的操作,表现在磁盘存取臂的来回移动。SQL语句隐藏了这
一情况,使得我们在写应用程序时很容易写出要求存取大量非顺序页的查询。
有些时候,用的排序能力来替代非顺序的存取能改进查询。
Top
create table 小孩 select ,卵子 from 男,女 where 男.生殖器=女.生殖器
Top
最近我做一个出版图书项目,我用的是access。
表cbs_public中有字段
id,cbs_bcode,cbs_bname,cbs_bauthor,cbs_banci......
cbs_bcode:一种书的唯一编号,我们称为社内编号。
cbs_bname:书名
cbs_buthor:作者
cbs_banci:书的版次,这个字段是4位的字符。如0103,表示第一版第三次印刷
这个库中有3000多记录,由于有的书多次再版或是重印,使得同一本书(cbs_bcode一样)的记录出现多次,但是cbs_banci不一样,现在我想把同一本书的最新版的最近印刷的那条记录选择出来,而将其他记录删除掉,我因该如何做?
我尝试过在access2000的查询表中使用group by having 语句以及集函数max(),但好像不成功,我应该如何做呢?
这个帖子有很多sql语言高手,希望有人能帮我解答,谢谢!
Top
SQL Server中实现limit功能,如选择stu(num,name) 中的第10到第20条记录:
SELECT TOP 10 a.num, a.name
FROM (SELECT TOP 20 *
FROM stu
ORDER BY num DESC) a
ORDER BY a.num
Top
一个最简单的调试函数办法:
再要在函数 ecoadd 中加入:
DBMS_OUTPUT.PUT_LINE('v_canBeAdd is '||v_canBeAdd); --输出中间变量
SQL> set serverout on;
SQL> declare
2a number;
3begin
4a:=ecoadd('21',to_date('2003-04-18','yyyy-mm-dd'));
5end;
6/
v_canBeAdd is 1
PL/SQL procedure successfully completed.
Top
不错不错
Top
好!我喜欢!
Top
看到了大海,才知道以前一直在小水沟里游泳
Top
我也来一句吧:
Select field1,field2,(Case When ** then aa When *** then aaa Else bbb End)ResultVal From Tablename where 条件 order by id DESC
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30385-45.html
超日本五倍也不算多
叙利亚危急让普京占尽风头
忽然的那一份坚强