求一条sql 查询语句的写法

Justin1818 2008-08-19 03:14:52
A_Table
[T/O#] Column_2 Column_3 Column_4
1234567 a 1 dd
1234567 b 2 klkjfad
1234567 c 3 a2eo
1234567 d 4 5423d
1234567 e 6 oied
1234567 f 5 tesa
1234567 g 9 tteea


要求用户在查询Column_2,Column_3,Column_4 例的数据时 如: .... where Column_2='a'

查询结果要求始终将相同的[T/O#] 的记录都显示出来 
如果说这个七行记录完整的描述了T/O# 1234567 的属性,哪只有将这七条记录全部显出来,才是完整的
...全文
87 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyang840117 2008-08-19
  • 打赏
  • 举报
回复
select a.* from a_table a
exists
(select [t/o#] from a_table b where b.column_2='a' and a.[t/o#]=b.[t/o#])
水族杰纶 2008-08-19
  • 打赏
  • 举报
回复
declare @A_Table table ([T/O#] int,Column_2 varchar(10),Column_3 int,Column_4 varchar(10))
insert @A_Table select 1234567, 'a', 1, 'dd'
insert @A_Table select 1234567, 'b', 2, 'klkjfad'
insert @A_Table select 1234567, 'c', 3, 'a2eo'
insert @A_Table select 1234567, 'd', 4, '5423d'
insert @A_Table select 1234567, 'e', 6, 'oied'
insert @A_Table select 1234567, 'f', 5, 'tesa'
insert @A_Table select 1234567, 'g', 9, 'tteea'
insert @A_Table select 2234568, 'a1', 1, 'dd'
insert @A_Table select 2234568, 'b', 2, 'klkjfad'
insert @A_Table select 2234568, 'c', 3, 'a2eo'
insert @A_Table select 2234568, 'd', 4, '5423d'
insert @A_Table select 2234568, 'e', 6, 'oied'
insert @A_Table select 2234568, 'f', 5, 'tesa'
insert @A_Table select 2234568, 'g', 9, 'tteea'
insert @A_Table select 3234568, 'a', 1, 'dd'
insert @A_Table select 3234568, 'b', 2, 'klkjfad'
insert @A_Table select 3234568, 'c', 3, 'a2eo'
insert @A_Table select 3234568, 'd', 4, '5423d'
insert @A_Table select 3234568, 'e', 6, 'oied'
insert @A_Table select 3234568, 'e', 6, 'oied'
insert @A_Table select 3234568, 'e', 6, 'oied'
insert @A_Table select 3234568, 'f', 5, 'tesa'
insert @A_Table select 3234568, 'g', 9, 'tteea'
select * from @A_Table
t1 where t1.[T/O#] in (select t2.[T/O#] from @A_Table
t2 where t2.Column_2='a')
Justin1818 2008-08-19
  • 打赏
  • 举报
回复
这下大伙都知道了,测试完后结帖
xuyang840117 2008-08-19
  • 打赏
  • 举报
回复
select * from A_Table
t1 where t1.Column_1 in (select t2.Column_1 from A_Table
t2 where t2.Column_2='a')
fcuandy 2008-08-19
  • 打赏
  • 举报
回复
select a.* from a_table a
where [t/o#] in
(select [t/o#] from a_table where column_2='a')
Justin1818 2008-08-19
  • 打赏
  • 举报
回复
A_Table
[T/O#] Column_2 Column_3 Column_4
1234567 a 1 dd
1234567 b 2 klkjfad
1234567 c 3 a2eo
1234567 d 4 5423d
1234567 e 6 oied
1234567 f 5 tesa
1234567 g 9 tteea
2234568 a1 1 dd
2234568 b 2 klkjfad
2234568 c 3 a2eo
2234568 d 4 5423d
2234568 e 6 oied
2234568 f 5 tesa
2234568 g 9 tteea
3234568 a 1 dd
3234568 b 2 klkjfad
3234568 c 3 a2eo
3234568 d 4 5423d
3234568 e 6 oied
3234568 f 5 tesa
3234568 g 9 tteea

对于上面的表

用户要示当 查询 Column_2='a' 时,应显示为以下结果: (2234568 没有显示,其它两T/O# 都完整的显示)
[T/O#] Column_2 Column_3 Column_4
1234567 a 1 dd
1234567 b 2 klkjfad
1234567 c 3 a2eo
1234567 d 4 5423d
1234567 e 6 oied
1234567 f 5 tesa
1234567 g 9 tteea
3234568 a 1 dd
3234568 b 2 klkjfad
3234568 c 3 a2eo
3234568 d 4 5423d
3234568 e 6 oied
3234568 f 5 tesa
3234568 g 9 tteea


sql 语句如何写
  • 打赏
  • 举报
回复
难道是:select * from tb where [T/O#] in (select [T/O#] from tb where column_2='a')
Justin1818 2008-08-19
  • 打赏
  • 举报
回复
to: liangCK
因为 column_2(或column_3,column_4) 每条记录所存放的数据不一相同
如果查询 Column_2='a' 时,只会显示 以下记录
1234567 a 1 dd

但是客户要求即便是查询 Column_2='a'时也要将[T/O#]='1234567'的记录全部显出来, 以下显示结果正确为
1234567 a 1 dd
1234567 b 2 klkjfad
1234567 c 3 a2eo
1234567 d 4 5423d
1234567 e 6 oied
1234567 f 5 tesa
1234567 g 9 tteea


linzi_0535 2008-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangCK 的回复:]
没懂.
[/Quote]
水族杰纶 2008-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangCK 的回复:]
没懂.
[/Quote]
liangCK 2008-08-19
  • 打赏
  • 举报
回复
没懂.

34,589

社区成员

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

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