sql 同一条记录 各个字段比较 取最大值

说起来感觉都麻烦麻烦高手们给指点指点我的记录是这样的同一条记录(B字段对应的值无重复的情况)取C,D,E,F中最大的值,B字段对应的值有重复的情况,那么取重复的x条记录中... 说起来感觉都麻烦 麻烦高手们给指点指点

我的记录是这样的 同一条记录(B字段对应的值无重复的情况)取C,D,E,F中最大的值,B字段对应的值有重复的情况,那么取重复的x条记录中C,D,E,F字段的最大值 。 不知道表述清楚没....
展开
 我来答
sfrem
2013-03-07 · 超过19用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:33.7万
展开全部
declare @IF_repeat int --定义重复变量
@B varchar 20 --定义B字段的值
set @B = '月牙河'
set @IF_repeat = (select count(B) as B from table where B = @B group by B)

IF @IF_repeat> 1
select count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num >1
else
select top x count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num = 1
追问
你这只有月牙河一种情况啊
追答
是变量,可以先查询出B列的值赋值后输出结果
wszf8410
2013-03-07
知道答主
回答量:22
采纳率:0%
帮助的人:12.7万
展开全部
select B,max(G)
from(
select B,G=C from test
union select B,G=D from test
union select B,G=E from test
union select B,G=F from test) as x
group by B
这样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leedone310
2013-03-07 · 超过31用户采纳过TA的回答
知道答主
回答量:200
采纳率:0%
帮助的人:90.4万
展开全部
用decode函数
更多追问追答
追问
能具体点吗  没用过
追答
给你举个例子吧。
表test,字段 a 值 10
select decode(sign(a-10),0,100,200) from test;
意思是比较字段a的值减去10是否等于0,如果等于0,就将10改成100,否则改成200.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ce9db63
2013-03-07 · 超过14用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:34.9万
展开全部
select b ,max(tgreat) from (
select b,greatest(c,d,e,f)tgreat from test
)
group by b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式