有俩表
用户表 userinfo 有个积分等级字段 level 值1代表会员2高级会员3VIP.... 还有积分值字段score
积分等级表 scorelist 字段 score_start,score_end,caption 就是 0-50是会员 50-100是高级会员现在要求用户表的积分值发生改变的话 level能根据积分等级表进行相应的调整
用户表 userinfo 有个积分等级字段 level 值1代表会员2高级会员3VIP.... 还有积分值字段score
积分等级表 scorelist 字段 score_start,score_end,caption 就是 0-50是会员 50-100是高级会员现在要求用户表的积分值发生改变的话 level能根据积分等级表进行相应的调整
解决方案 »
- oracel
- 请知道toad的人进,一个关于TOAD字符的问题?
- 怎么将sybase的IMAGE导入到oracle的blob,请高手告诉我。。。谢谢。
- oracle 中关于 group by all
- 在oracle中,子查询的效率高,还是连接查询的效率高。
- 急急!PRO*C/C++程序能否处理存储过程或函数返回的游标结果(处理多行多列的返回结果)?
- 请问从sql server2000的数据库移植到Oracle8时, 在些语句上, 有哪些是需要变化的?
- 远程培训的风险性
- 如何实现Oracle的无人职守安装???????
- Oracle菜鸟求教:如何增加Oracle的进程连接数呀?在线等待
- oracle dbca是建库,那么跟实例有何关系?
- 急!求助!如何列变行,去除重复数据
BEFORE UPDATE OR INSERT ON USERINFO
FOR EACH ROW
DECLARE
V_CAPTION SCORELIST.CAPTION%ROWTYPE;
BEGIN
SELECT CAPTION
INTO V_CAPTION
FROM SCORELIST
WHERE SCORE_START >= :NEW.SCORE
AND SCORE_END < :NEW.SCORE;
IF V_CAPTION = '会员' THEN
:NEW.LEAVEL = 1;
END IF;
IF V_CAPTION = '高级会员' THEN
:NEW.LEAVEL = 2;
END IF;
IF V_CAPTION = 'VIP' THEN
:NEW.LEAVEL = 3;
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN;
END;
-- 取出所在分数范围的最小值即可
SELECT CAPTION
INTO V_CAPTION
FROM SCORELIST
WHERE SCORE_END IN (SELECT MIN(SCORE_END) FROM SCORELIST WHERE SCORE_END > :NEW.SCORE);
MIN(SCORE_END) 还是原来的值呀现在数据表scorelist成 user_type_list
请问怎么写啊
0<当前积分<=50 体验会员
50<当前积分<=100 普通会员 怎么取上一个integral_end的值呢
假设会员的积分为85,那么可以使用
SELECT MIN(SCORE_END) FROM SCORELIST WHERE SCORE_END > 85 ;
取得该值所属范围的上限值。
可以使用
SELECT MAX(SCORE_END) FROM SCORELIST WHERE SCORE_END < 85
取得该值所属范围的下限值。