sql语句问题,应属于简单问题

joer986565 2003-10-10 12:28:35
有一个数据表,记录如下:
1 AAA C T
2 AAA D T
3 BBB C T
4 BBB D T
这几个记录有相同的字段T,如何返回第一列相同的记录呢?
谢谢大家了,sql语句还不是很精通。
...全文
42 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
woxinyongheng 2003-11-09
  • 打赏
  • 举报
回复
I agree 踏网无痕
joke14520 2003-11-08
  • 打赏
  • 举报
回复
帮你up
aierong 2003-10-10
  • 打赏
  • 举报
回复
create table ai(id int,i varchar(10),ii varchar(10), iii varchar(10))
insert into ai select 1, 'AAA', 'C', 'T'
union all select 2, 'AAA', 'D', 'T'
union all select 3, 'BBB', 'C' , 'T'
union all select 4, 'BBB', 'D', 'T'
go
select *
from ai
where id in(
select min(id)
from ai
group by i)

id i ii iii
----------- ---------- ---------- ----------
1 AAA C T
3 BBB C T

(所影响的行数为 2 行)


zarge 2003-10-10
  • 打赏
  • 举报
回复
select * from 表 as tem where 编号=(select top 1 编号 from 表 where T=tem.T order by 编号)

tem指表别名
joer986565 2003-10-10
  • 打赏
  • 举报
回复
to : pengdali(大力 V3.0)
tem指得是什么,谢谢。
joer986565 2003-10-10
  • 打赏
  • 举报
回复
先谢谢大家了。
pengdali 2003-10-10
  • 打赏
  • 举报
回复
select * from 表 tem where 编号=(select min(编号) from 表 where T=tem.T)
joer986565 2003-10-10
  • 打赏
  • 举报
回复
to : yujohny(踏网无痕)
怎么又id呢?我写1,2,3,4只是为了标出有几个纪录,再说如果记录不再第一条怎么办。
aierong 2003-10-10
  • 打赏
  • 举报
回复
create table ai(id int,i varchar(10),ii varchar(10), iii varchar(10))
insert into ai select 1, 'AAA', 'C', 'T'
union all select 2, 'AAA', 'D', 'T'
union all select 3, 'BBB', 'C' , 'T'
union all select 4, 'BBB', 'D', 'T'
union all select 5, 'jjj', 'c', 'n'
union all select 6, 'kkk', 'd', 'i'
go
select *
from ai
where id in(
select min(id) as ids
from ai
group by iii,ii)


aierong 2003-10-10
  • 打赏
  • 举报
回复



create table ai(id int,i varchar(10),ii varchar(10), iii varchar(10))
insert into ai select 1, 'AAA', 'C', 'T'
union all select 2, 'AAA', 'D', 'T'
union all select 3, 'BBB', 'C' , 'T'
union all select 4, 'BBB', 'D', 'T'
union all select 5, 'jjj', 'c', 'n'
union all select 6, 'kkk', 'd', 'i'
go
select a.*
from ai as a join (
select min(id) as ids, ii,iii
from ai
group by iii,ii) as b
on a.id=b.ids

id i ii iii
----------- ---------- ---------- ----------
1 AAA C T
2 AAA D T
5 jjj c n
6 kkk d i

(所影响的行数为 4 行)
yujohny 2003-10-10
  • 打赏
  • 举报
回复
select A.*
from 表 A
where 列3 ='T' and id =(select top 1 id from 表 where 列2=A.列2 and 列3='T')
yujohny 2003-10-10
  • 打赏
  • 举报
回复
select A.*
from 表 A
where 列3 ='T' and id =(select top 1 id from 表 where 列2=A.列2)
joer986565 2003-10-10
  • 打赏
  • 举报
回复
请大家给于回答,谢谢大家了!
joer986565 2003-10-10
  • 打赏
  • 举报
回复
我说的可能不清楚,问题是样的。

有一个数据表,记录如下:
列1 列2 列3
1 AAA C T
2 AAA D T
3 BBB C T
4 BBB D T
5 JJJ C N
6 KKK D I
首先,SQL语句应该找出指定的条件 WHERE 列3 = T
然后如果列2有相同的纪录则取第一个,比如1 和 3都有C就只返回第一个纪录。
而2 和 4都有D就返回第二个纪录。

谢谢大家了。
aierong 2003-10-10
  • 打赏
  • 举报
回复
create table ai(id int,i varchar(10),ii varchar(10), iii varchar(10))
insert into ai select 1, 'AAA', 'C', 'T'
union all select 2, 'AAA', 'D', 'T'
union all select 3, 'BBB', 'C' , 'T'
union all select 4, 'BBB', 'D', 'T'
go
select *
from ai as a
where id=(select top 1 id from ai where i=a.i order by id)

id i ii iii
----------- ---------- ---------- ----------
1 AAA C T
3 BBB C T

(所影响的行数为 2 行)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧