oracle里取列名的别名的问题
我代码里大致是selectnamefromahavingsum(x)<sum(y)goupbyname这里面x和y都是表a的同一列,只不过x和y的约束条件不一样,我简化代...
我代码里大致是
select name from a
having sum(x)<sum(y)
goup by name
这里面x和y都是表a的同一列,只不过x和y的约束条件不一样,我简化代码了。
怎样我才可以把x和y取一个列的别名,并且在select里列出来?
这段代码意思其实是直接比较得出结果name,但是我想它把取出的值X和Y也同样列在出来,本来是只有name,现在我是想获得name,sum(x),sum(y)的值,但是无耐x和y都是同一个列名啊,我的想法是把having sum(x)结果定义成一个另外的名字c,然后sum(y)定义另外一个名字d,然后select name,c,d 展开
select name from a
having sum(x)<sum(y)
goup by name
这里面x和y都是表a的同一列,只不过x和y的约束条件不一样,我简化代码了。
怎样我才可以把x和y取一个列的别名,并且在select里列出来?
这段代码意思其实是直接比较得出结果name,但是我想它把取出的值X和Y也同样列在出来,本来是只有name,现在我是想获得name,sum(x),sum(y)的值,但是无耐x和y都是同一个列名啊,我的想法是把having sum(x)结果定义成一个另外的名字c,然后sum(y)定义另外一个名字d,然后select name,c,d 展开
5个回答
展开全部
select name,sum(case when 满足x列约束 then x else 0 end) x,
sum(case when 满足y列约束 then y else 0 end) y
from a group by name
having sum(case when 满足x列约束 then x else 0 end) <sum(case when 满足y列约束 then y else 0 end)
sum(case when 满足y列约束 then y else 0 end) y
from a group by name
having sum(case when 满足x列约束 then x else 0 end) <sum(case when 满足y列约束 then y else 0 end)
追问
你明白我的意思了 语法上不可以在having后面 或者case里面另外命名吗?这样代码有点长臃肿
追答
或者
select * from
(select name,sum(x) ss from a where 满足x列约束 group by name) m,
select name,sum(x) ss from a where 满足y列约束 group by name) n
where m.name=n.name and m.ss<n.ss
展开全部
你要把x,y 放到select 中,那么你比如要放到group by中,就不符合你的要求了。
是不是要的这个呢?
select name,sum(x) sumx,sum(y) sumy from a
having sum(x)<sum(y)
group by name
是不是要的这个呢?
select name,sum(x) sumx,sum(y) sumy from a
having sum(x)<sum(y)
group by name
更多追问追答
追问
你这样不对 只是换了名字
追答
晕死了,你到底要显示x,y
还是要显示sum(x),sum(y)?
我上面的语法不就是显示sum(x),sum(y)的吗?
至于显示x,y,这个语句明显不行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select name ,x AS "别名",y as “别名” from a
having sum(x)<sum(y)
goup by name
having sum(x)<sum(y)
goup by name
追问
你这个我明白 但是不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没怎么理解你的意思 可以把你想要的效果给出来吗?
更多追问追答
追问
嗯 就是怎么取个别名列出来 简单写一下就好
追答
select name 名字 from a
having sum(x)<sum(y)
goup by name
是这个意思吗?就是给名字前面加一个表头?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我研究了一下,恐怕没办法,虽然可以搜索出列名,但是别名貌似只能是常量 想办法在应用端用java神马的完成这个需求吧 我在你另外提的一个问题中作答了l
追问
你说的完全不明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |