疑难问题,解决后,再送1000分!!!

arefe 2003-05-16 05:24:05
表结构:
商品 {
商品名 VARCHAR2(XX) (KEY) ,
旧价格 NUMBER,
新价格 NUMBER,
新价格适用日期 DATE
}
说明:系统日期大于‘新价格适用日期‘,就用新价格;否则旧价格

要求:用一个SQL句子把商品名字和价格列出来。

例:
商品名 旧价格 新价格 新价格适用日期
鞋子 12 10 2003/06/01
口罩 5 50 2003/04/20

系统时间是2003/05/16
结果:
商品名 价格
鞋子 12
口罩 50
==============================
请大家帮忙了!!!
...全文
33 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
arefe 2003-05-16
  • 打赏
  • 举报
回复
我把分捐赠给各位了!!
jiezhi 2003-05-16
  • 打赏
  • 举报
回复
哪里来的1000分?
ccbzzp 2003-05-16
  • 打赏
  • 举报
回复
decode() 函數在
DB2中用CAST()
arefe 2003-05-16
  • 打赏
  • 举报
回复
另外:1000分这么多,怎么给呀?各位想个办法
arefe 2003-05-16
  • 打赏
  • 举报
回复
谢谢大家了!!!这条回复以上的,我给分。
LGQDUCKY 2003-05-16
  • 打赏
  • 举报
回复
哦,错了,你用这条语句吧,肯定行
select 商品名字, decode(sign(sysdate - 新价格适用日期),1,新价格,旧价格 ) from 商品 ;
w_tsinghua 2003-05-16
  • 打赏
  • 举报
回复
select 商品名,新价格 from 商品 where sysdate>新价格适用日期
union all
select 商品名,旧价格 from 商品 where sysdate < =新价格适用日期
jiezhi 2003-05-16
  • 打赏
  • 举报
回复
我的trunc是多余的。
jiezhi 2003-05-16
  • 打赏
  • 举报
回复
select 商品名,decode(sign(trunc(sysdate-新价格适用日期)),1,新价格,旧价格) as 价格
from your_table
llz21 2003-05-16
  • 打赏
  • 举报
回复
select
a.商品名,decode(b.flag,0,新价格,旧价格)
from 商品 a,
(select 商品名 name, 0 flag from 商品
where sysdate>新价格适用日期
union
select 商品名 name, 1 flag from 商品
where sysdate<=新价格适用日期
) b
where a.商品名=b.name
LGQDUCKY 2003-05-16
  • 打赏
  • 举报
回复
select 商品名字,decode(sysdate>新价格适用日期,true,新价格,旧价格 )from 商品 ;

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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