表结构如下.....
id name name1 name2 name3 name4
1 aa bb aa aa aa
2 aa aa aa aa aa
3 aa cc aa aa aa
4 aa ee aa aa aa
5 aa dd aa aa aa 5行数据中.除了NAME1一列的值不一样.其它都一样.我要能过一条查询语句.把这五行显示为一行.但是我还需要得到显行的ID值.select distinct name,name2,name3,name4 from abc这样可以显示出来一行.但是看不到此行的ID...还有其它的方法吗?
id name name1 name2 name3 name4
1 aa bb aa aa aa
2 aa aa aa aa aa
3 aa cc aa aa aa
4 aa ee aa aa aa
5 aa dd aa aa aa 5行数据中.除了NAME1一列的值不一样.其它都一样.我要能过一条查询语句.把这五行显示为一行.但是我还需要得到显行的ID值.select distinct name,name2,name3,name4 from abc这样可以显示出来一行.但是看不到此行的ID...还有其它的方法吗?
from abc
group by name,name2,name3,name4
1 aa aa aa aa这样的结果...值不相同的列可以不显出来来.
1 张一 男 12 中国
2 张一 男 15 中国
3 张一 男 16 中国
4 张一 男 17 中国
5 张一 男 19 中国忽略年龄一例.其它的都一样.5行数据.只让他显出任何一行都行.并能带着ID.3 张一 男 中国
*
from
tb t
where
exists(select 1 from tb where id=t.id and name=t.name and name1=t.name1 and name2=t.name2 and name3=t.name3 and name4=t.name4)
*
from
tb t
where
exists(select 1 from tb where id<>t.id and name=t.name and name1=t.name1 and name2=t.name2 and name3=t.name3 and name4=t.name4)
-- Author :fredrickhu(小F,向高手学习)
-- Date :2011-03-16 15:10:43
-- Verstion:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([id] int,[name] varchar(4),[sex] varchar(2),[age] int,[address] varchar(4))
insert [tb]
select 1,'张一','男',12,'中国' union all
select 2,'张一','男',15,'中国' union all
select 3,'张一','男',16,'中国' union all
select 4,'张一','男',17,'中国' union all
select 5,'张一','男',19,'中国'
--------------开始查询--------------------------
select
top 1 *
from
[tb] t
where
exists(select 1 from tb where [age]<>t.age and name=t.name and sex=t.sex and address=t.address)
----------------结果----------------------------
/* id name sex age address
----------- ---- ---- ----------- -------
1 张一 男 12 中国(1 行受影响)
*/
如果是现实任意一行的id的话
select top 1 id,name,name2,name3,name4 from abc