易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 有条件地筛选重复数据

 --基础了解:
1) select distinct name from table --打开重复记录的单个字段
2) select * from table where fid in(Select min(fid) from table group by name)--打开重复记录的所有字段值
3) select * from table where name in(select name from table group by name having count(name)=1)--打开重复任意次数的所有记录
--筛选重复数据就用上面的第二条语句,但是如果我要进行有条件地查询,还需要一点点转换,下面是一个例子:
--testact表创建如下:
CREATE TABLE testact
(
 tid int IDENTITY(1,1) PRIMARY KEY NOT NULL,--自增ID
 TDate datetime DEFAULT getdate() NOT NULL,--发表时间
 TUrl varchar(255) DEFAULT '' NOT NULL,--新闻链接地址
 TTop smallint DEFAULT 0 NOT NULL --是否置顶
)
--基本数据
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.baidu.com',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,1,getdate()), 'http://www.baidu.com',0)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.google.com',0)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,1,getdate()),'http://www.google.com',0)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.baidu.com?a=1',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,1,getdate()),'http://www.baidu.com?a=1',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,2,getdate()),'http://www.baidu.com?a=1',0)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.baidu.com?b=1',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,2,getdate()),'http://www.baidu.com?b=1',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.baidu.com?c=1',0)
/*
要求:比如说有一个新闻表testact,有字段:tid(自增ID),TDate(发表时间),TUrl(链接地址),TTop(是否置顶)。
表里数据TUrl(链接地址)可能会重复。
1)如果 TUrl(链接地址)重复,有一个置顶,一个不置顶的,则取置顶的数据(不管时间先后)。
2)如果 TUrl(链接地址)重复,都置顶的或都不置顶的,则取 发表时间(TDate)最新的数据。
3)如果 TUrl(链接地址)没有重复的,则直接取出。
4)最后对置顶和时间


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

Oracle SQL Trace使用实例

为了研究一下系统在后台都干了什么,当然是我在代码里没找到的情况下,研究了一下trace,结果有一定的帮助。oracle中不像sql server中那样直接提供图像化的工具,所以还是得自己动手来做,归纳了一下,步骤如下:
查询session:
SQL> select sid, serial#, username from v$session where username='XXX';//找出你要跟 ......

oracle SQL性能优化

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号