一
SQL重复记录查询(转自http://blog.csdn.net/RainyLin/archive/2009/02/17/3901956.aspx)
SQL重复记录查询
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId
)>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId ......
SQL重复记录查询
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from
people
where peopleId in (select peopleId from people group by peopleId
having count
(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId
having count
(peopleId) > 1)
and rowid not in (select min(rowid) from people group
by peopleId having count(peopleId
)>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq)
in (select peopleId,seq from vitae group by peopleId,seq having
count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where
(a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq
having
count(*) > 1) ......
MMC 不能打开文件 C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC。可以原因是文件不存在,不是一个MMC控制台,或者用后来MMC版本创建,也许也没有访问此文件的足够权限。
解决方法:
重新创建此文件,运行对话框中输入:mmc
1) 控制台-->添加/删除管理单元-->添加-->找到Microsoft SQL 企业管理器-->添加-->关闭-->确定
回到控制台控制台-->选项-->控制台模式选择"用户模式完全访问"-->将下面的选择全部取消
2) 然后:控制台-->另存为-->C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC ......
在SQL中Select语句的执行顺序如下:
(1)from子句,组装来自不同数据源的数据
(2)WHERE子句,给予指定条件对记录进行筛选
(3)GROUP BY子句,将数据划分为多个组
(4)使用聚集函数进行计算
(5)使用HAVING子句筛选分组
(6)计算所有表达式
(7)使用ORDER BY对结果进行排序 ......
没有引用关系的表
1. 联表更新
update a set a.education = '本科' from NT_UserInfo a ,NT_User b where a.UserID=b.UserID and b.email = 'carlfan2008@163.com'
2. 联表查询
select a.*,b.* from nt_user as a, nt_userinfo as b where a.userid = b.userid and Email = 'carlfan2008@163.com' ......
--@@CPU_BUSY获取cpu工作时间
select @@CPU_BUSY AS 'CPU ms',GETDATE() AS 'TIMES'
--获取磁盘读写次数
SELECT @@TOTAL_READ AS 'Reads',@@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'
--获取SQl服务器名
SELECT HOST_NAME()
--获得数据库表示号
USE master
SELECT name,DB_ID(name) AS DB_ID from sysdatabases
--判断用户是否具有访问数据库权限
SELECT HAS_DBACCESS('master')
--显示表中列长度信息
SELECT COL_LENGTH('student','stuEnglish')
--获取连接或试图连接的次数
SELECT GETDATE() AS 'Today Date and Time',@@CONNECTIONS AS 'Login Attemps'
--获取当前数据库语言
SELECT @@LANGUAGE AS 'Language Name'
--提高SQL性能加快执行速度
--但SET NOCOUNT 为ON,不返回计数,但SET NOCOUNT为OFF是返回计数。
--即使当SET NOCOUNT为ON时,也更新@@ROWCOUNT函数,将不给客户端发
--送存储过程中的每个语句的DONEIN_PROC
--控制批处理语句的执行
--当SET NOEXEC为ON时SQL Server编译每个批处理Transat-SQL语句但并不执行它们。
--当SET NOEXEC为OFF时,所有的批处理在编译后执行。 ......