| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1255 人关注过本帖
标题:关于重复的问题
只看楼主 加入收藏
taoxinhui
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-8-7
收藏
 问题点数:0 回复次数:5 
关于重复的问题
我现在有个表A
ID  book_name    attorney      price
1   语文             小张               13
2   语文              小李              14
3   数学             小王               15
4   数学             小张               14
我要怎么样实现,让book_name只显示一个,同时后面的attorney,price不消失显示结果要这样
语文    小张     13
       小李     14
数学    小王     15
       小张     14
我这样查询主要是因为ASP里面不要重复名字,能够查询代理人的价格
搜索更多相关主题的帖子: attorney 代理人 price 数学 语文 
2007-12-12 03:34
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
create table tb(
ID int,
book_name varchar(20),
attorney varchar(20),
price int)

insert tb select 1,'语文','小张',13
insert tb select 1,'语文','小李',14
insert tb select 1,'数学','小王',15
insert tb select 1,'数学','小张',14

select book_name=case when attorney=(select top 1 attorney from tb where book_name=a.book_name) then book_name else '' end,
       attorney,price
from tb a

drop table tb

/*
book_name            attorney             price      
-------------------- -------------------- -----------
语文                小张                   13
                                        小李                   14
数学                小王                   15
                                        小张                   14

(所影响的行数为 4 行)
*/

我的msn: myfend@
2007-12-12 10:17
taoxinhui
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-8-7
收藏
得分:0 
谢谢.可以了啊
2007-12-12 13:11
happybaby40
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-11-21
收藏
得分:0 
select book_name=case when attorney=(select top 1 attorney from tb where book_name=a.book_name) then book_name else '' end,
       attorney,price
from tb a

drop table tb


purana能解释一下这些语句吗/我看到你回的贴子,虽然看到结果了,但是我分析不出来..
2007-12-12 16:58
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
收藏
得分:0 
select book_name,attorney,price  from tb a
這樣應該懂吧,
而這一句:book_name=case when attorney=(select top 1 attorney from tb where book_name=a.book_name) then book_name else '' end
給book_name賦值,當attorney 等於滿足這個語句的返回值 select top 1 attorney from tb where book_name=a.book_name 時 attorney就得於a表中的當前book_name否則就為''(空).
。。。。哎,解釋的不清楚,希望對你有一點幫助。

2007-12-12 17:14
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
嘿嘿..
SQL世界里..
只是告诉它做什么就行.
不需要知道它怎么做.

我的msn: myfend@
2007-12-12 17:28
快速回复:关于重复的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015483 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved