易截截图软件、单文件、免安装、纯绿色、仅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语句总结

 现在发现SQL语句确实是太强大了,以后遇到问题要尽量先好好思考下,不要按照最笨的方法来做!
1.从tblFaultDetailTemp表中,找到ID=14的项,并将所列出的四个字段的值拷贝到tblFaultDetail表中
Insert into tblFaultDetail(Code,FileType,FaultCode,FaultRect) select Code,FileType,FaultCode,FaultRect from tblF ......

Oracle SQL Trace使用实例

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

SQL Server TEXT类型字段字符串替换示例处理脚本

 /*--text字段的替换处理  
  --*/  
  --创建数据测试环境  
--create   table   #tb(aa   text)
declare @s_str varchar(8000),@d_str varchar(8000),  --定义替换的字符串 
        ......

清理SQL日志的方法

 手动清理
1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG
2、再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
如1)
自动清理
企业管理器-》管理-》sql ......

利用SQL语句将数据导出Insert语句

 有时候,在工作中会遇到将一个数据库中表的数据导到另一个数据库的表中,但是工具又没有提供这样的功能
下面能通过SQL语句生成Insert语句,再插入到另一个数据库中。
MSSQL:
SELECT 'INSERT INTO StatInfo(UserName,CardId,Address,WageCount,Pension)'+
' VALUES('''+a.UserName+''','''+a.CardId+''','''+a.Ad ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号