关于oracle中计算列的问题!请教!!

leiqiu2003 2006-11-13 07:57:55
请问,假设我有customer表,现表中有credit和journery字段,我想设置credit字段为计算列,根据journery字段可以自行算出,sql语句怎么写?
...全文
551 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
leiqiu2003 2006-11-14
  • 打赏
  • 举报
回复
帮忙给下触发器的SQL语句好嘛?我自己编了个老说我触发器不能用。还有SELECT journery,0.5*journery as credit FROM customer我也试过了,它说有无效字符。
wangzk0206 2006-11-14
  • 打赏
  • 举报
回复
create trigger t_test before insert on customer for each row
begin
:new.credit:=:new.journery*0.5;
end;
wangzk0206 2006-11-14
  • 打赏
  • 举报
回复
好好检查一下你的表结构看是否有journery这个字段/???
触发器不能用?????----写的有问题吧??
发出你的触发器来

SQL> select year,year*0.5 as creadit from test;

YEAR CREADIT
---------- ----------
2005 1002.5
2006 1003
2005 1002.5
2006 1003
2006 1003
2008 1004
wangzk0206 2006-11-13
  • 打赏
  • 举报
回复
那样的话 只能通过触发器来实现了 当插入JOURNERY自动的把CREDIT插入值
Hero__008 2006-11-13
  • 打赏
  • 举报
回复
ORACLE中当然也可以,只不过要调换下位置哈:
SELECT journery,0.5*journery as credit FROM customer就OK了阿!!!
leiqiu2003 2006-11-13
  • 打赏
  • 举报
回复
不是update时用,就创建的时候将其设置为计算列,当我输入journery时,在credit字段中自动有值的那种,在SQL中可以直接用credit as 0.5*journery即可成为计算列,但是oracle中好像不行。
wangzk0206 2006-11-13
  • 打赏
  • 举报
回复
你是说要UPDATE吗 还是在插入的时候 自动的插入呀?

若是只是为了UPDATE:update test set credit=journery*100; --->这是把journery的列乘以100赋给他

要是自动插入的话:建立一个触发器来实现就可以了(插入行触发)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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