sql查询汇总
-
处理表重复记录(查询和删除)
/*
*****************************************************************************************************************************************************
1、Num、Name相同的重复值记录,没有大小关系只保留一条
2、Name相同,ID有大小关系时,保留大或小其中一个记录
整理人:中国风(Roy)
日期:2008.06.06
*****************************************************************************************************************************************************
*/
--
1、用于查询重复处理记录(如果列没有大小关系时2000用生成自增列和临时表处理,SQL2005用row_number函数处理)
--
> --> (Roy)生成測試數據
if
not
object_id
(
'
Tempdb..#T
'
)
is
null
drop
table
#T
Go
Create
table
#T(
[
ID
]
int
,
[
Name
]
nvarchar
(
1
),
[
Memo
]
nvarchar
(
2
))
Insert
#T
select
1
,N
'
A
'
,N
'
A1
'
union
all
select
2
,N
'
A
'
,N
'
A2
'
union
all
select
3
,N
'
A
'
,N
'
A3
'
union
all
select
4
,N
'
B
'
,N
'
B1
'
union
all
select
5
,N
'
B
'
,N
'
B2
'
Go
--
I、Name相同ID最小的记录(推荐用1,2,3),方法3在SQl05时,效率高于1、2
方法1:
Select
*
from
#T a
where
not
exists
(
select
1
from
#T
where
Name
=
a.Name
and
ID
<
a.ID)
方法2:
select
a.
*
from
#T a
join
(
select
min
(ID)ID,Name
from
#T
group
by
Name) b
on
a.Name
=
b.Name
and
a.ID
=
b.ID
方法3:
select
*
from
#T a
where
ID
=
(
select
min
(ID)
from
#T
where
Name
=
a.Name)
方法4:
select
a.
*
from
#T a
join
#T b
on
a.Name
=
b.Name
and
a.ID
>=
b.ID
group
by
a.ID,a.Name,a.Memo
having
count
(
1
)
=
1
方法5:
select
*
from
#T a
group
by
ID,Name,Memo
having
ID
=
(
select
min
(ID)
from
#T
where
Name
=
a.Name)
方法6:
select
相关文档:
情况:我以前安装过SQL Server 2000,哦,还有SQL Server 2005、MySQL呢,后来系统重装了,不过这些应用程序都在E盘里,不在系统盘里,就在安装的时候出现如下三个错误,在此逐个解决说明如下:
问题一:
报错信息:以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。
解决方 ......
1. 使用的是服务器上的,不是本机的Oracle,按下面做就可以了:
设置环境变量:NLS_LANG,具体值用下面查询的值:
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE
from DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'NLS_CHARACTERSET';
2. 如果是本机的Oracle就需要在Oracle的安装目录下面改设置:
......
如果您在安装SQL Server 2005时出现计数器错误
点击开始-运行输入"cmd",确定后进入命令窗口,依次输入下面4条命令删除4个计数器:
unlodctr w3svc
unlodctr msftpsvc
unlodctr asp
unlodctr inetinfo
然后再依次输入下面4条命令重装4个计数器:
lodctr w3ctrs.ini
lodctr ftpctrs.ini
lodctr axperf.ini
lod ......
一直没有找到一种好的方法来引用有返回值的存储过程的方法,使我在添加数据中走了不少的弯路,最近,在查阅了大量的资料之后,终于在微软的一个实例中找到了一种良好的方法。
首先编写好一有返回值的存储过程
create procedure proc_name
@para1 nchar(20), --输入参数
@ ......
曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm:ss,而我们查询时是通过yyyy-mm-dd来进行的,即查询某一天的所有会议信息,这样如果通过select * from Meeting where PublishTime=@PublishTime (参数@PublishTime为y ......