求SQL:应该是循环语句吧
表:T
ID,AMOUNT
1,1000
2,1500
3,500
需要得到的结果,LEVEL是衍生出来的列:
ID,AMOUNT,
LEVEL
1,1000,消费1000以上
2,1500,消费1000以上
3,500,消费500以内
(注:实际情况比这个复杂一些,AMOUNT有10个档次,ID有10W行)
我写的case when好像不管用,可能写错了,就不在这里贴出来了。感谢各位的协助!!!
------解决方案--------------------字典表存放level的描述,然后amount的起始值、结束值,用between and 来匹配你原有的表,这样还有另外一个好处,如果以后level的区间改动,不需要再改原有代码,直接改字典表的区间即可
------解决方案--------------------大概就是这样,另外,最好是有具体的大小范围,比如大于多少,小于多少,是“消费1000以上”:
--drop table t
create table t(ID int,AMOUNT int)
insert into t
select 1,1000 union all
select 2,1500 union all
select 3,500
go
select *,
case when amount <= 500 then '消费500以内'
when AMOUNT >= 1000 then '消费1000以上'
end LEVEL
from t
/*
ID AMOUNT LEVEL
1 1000 消费1000以上
2 1500 消费1000以上
3 500 消费500以内
*/