oracle decode 问题

用decodeif函数查询表中所有房产编号和地址以及所在城市的平均房价如果房价大于均价,将“等级”列标为奢侈,如果小于或等于,则为普通多谢~表结构:房产号地址城市邮编房型... 用decode if 函数查询表中所有房产编号和地址以及所在城市的平均房价
如果房价大于均价,将“等级”列标为奢侈,如果小于或等于,则为普通

多谢~

表结构:
房产号 地址 城市 邮编 房型 租金

共6条数据,不要update,查询的时候加一列“等级”
6条数据都要返回

sorry,我们要求就是用decode.... 顺便说一下,城市平均房价是要用avg求的,表中没有
sorry,这个租金就是房价
展开
 我来答
badkano
2010-09-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144775 获赞数:885381
团长

向TA提问 私信TA
展开全部
表结构,列几条数据
和你想要的结果
你是想update还是查询时加一列?
--补充--
你好像表里没有房价字段,只有个租金,请问,房价是在其他表里体现出来的吗?

select a.*,decode(sign(a.房租-b.房租),1,'奢侈','普通')
from 表名 a,
(select 城市,avg(房租) 房租 from 表名 group by 城市) b
where a.城市=b.城市
jiao191035162
2010-09-13 · TA获得超过407个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:440万
展开全部
select 房产号,
地址,
城市,
邮编,
房型,
租金,
decode(sign(租金 - avg(t.租金) over(partition by 城市)),
-1,
'普通',
0,
'普通',
'1',
'奢侈') 等级
from 表名 t
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linuxocp
2010-09-13 · TA获得超过267个赞
知道答主
回答量:82
采纳率:0%
帮助的人:121万
展开全部
case when的实现:

select case when sal>3000 then '奢侈' else '普通' end as dj,sal,ename from emp

和decode是一样的效果,decode是oracle的sql方言中特有的,而case是sql92标准写法,且case灵活性更大,decode只是很简短。

既然非要用decode,给你这段代码:

sys@ORCL>select decode(sign(sal-2000),-1,'普通',0,'正常','奢侈'),sal from emp;

DECO SAL
---- ----------
奢侈 5000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
正常 2000
普通 1000
正常 2000
正常 2000
正常 2000

已选择15行。

两种方法任你挑。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maidouxigua
2010-09-13 · 超过18用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:57.7万
展开全部
给个示例:
SQL> select * from t ;

ID CITY
---------- ----------
1 A
2 A
3 B
1 A
2 A
3 B
6 B
4 B

8 rows selected

SQL>
SQL>
SQL> select t1.city,t1.id,t2.avg_id,decode(ceil((t1.id-t2.avg_id)/t1.id),1,'奢侈','普通')
2 from
3 t t1,
4 (select avg(id) as avg_id ,city from t group by city) t2
5 where t1.city=t2.city ;

CITY ID AVG_ID DECODE(CEIL((T1.ID-T2.AVG_ID)/
---------- ---------- ---------- ------------------------------
A 2 1.5 奢侈
A 1 1.5 普通
A 2 1.5 奢侈
A 1 1.5 普通
B 4 4 普通
B 6 4 奢侈
B 3 4 普通
B 3 4 普通

8 rows selected
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式