34,594
社区成员
发帖
与我相关
我的任务
分享
表a的结构如下:
id t a1
1 ta 0
2 tc 4
3 tt 7
4 rt 7
5 gg 14
6 sr 22
7 qq 4
8 sd 7
9 vs 50
10 ws 10
11 rf 9
要求对表a中a1列的数值进行判定,结果输到b表中。
若值在0---5之间,对应的b1列上标明b05
若值在6---9之间,对应的b1列上标明b69
若值在10---14之间,对应的b1列上标明small
若值在15---30之间,对应的b1列上标明big
若值在30之上,对应的b1列上标明null
判定后,b表的结果如下:
id t a1 b1
1 ta 0 b05
2 tc 4 b05
3 tt 7 b69
4 rt 7 b69
5 gg 14 small
6 sr 22 big
7 qq 4 b05
8 sd 7 b69
9 vs 50 null
10 ws 10 small
11 rf 9 b69
/*表a的代码如下:
create table a(id int,t text,a1 int)
insert into a values(1,'ta',0)
insert into a values(2,'tc',4)
insert into a values(3,'tt',7)
insert into a values(4,'rt',7)
insert into a values(5,'gg',14)
insert into a values(6,'sr',22)
insert into a values(7,'qq',4)
insert into a values(8,'sd',7)
insert into a values(9,'vs',50)
insert into a values(10,'ws',10)
insert into a values(11,'rf',9)
go*/
select id,t,a1,case when a1 between 0 and 5 then 'b05'
when a1 between 6 and 9 then 'b09'
when a1 between 10 and 14 then 'small'
when a1 between 15 and 30 then 'big'
else null end as b1 from a
create table a(id int,t text,a1 int)
insert into a values(1,'ta',0)
insert into a values(2,'tc',4)
insert into a values(3,'tt',7)
insert into a values(4,'rt',7)
insert into a values(5,'gg',14)
insert into a values(6,'sr',22)
insert into a values(7,'qq',4)
insert into a values(8,'sd',7)
insert into a values(9,'vs',50)
insert into a values(10,'ws',10)
insert into a values(11,'rf',9)
go
select id,cast(t as varchar) t,a1,
[b1] =case when a1 between 0 and 5 then 'b05'
when a1 between 6 and 9 then 'b69'
when a1 between 10 and 14 then 'small'
when a1 between 15 and 30 then 'big'
else null end
from a
drop table a
/*
id t a1 b1
----------- ------------------------------ ----------- ------
1 ta 0 b05
2 tc 4 b05
3 tt 7 b69
4 rt 7 b69
5 gg 14 small
6 sr 22 big
7 qq 4 b05
8 sd 7 b69
9 vs 50 NULL
10 ws 10 small
11 rf 9 b69
(所影响的行数为 11 行)
*/
create table a(id int,t text,a1 int)
insert into a values(1,'ta',0)
insert into a values(2,'tc',4)
insert into a values(3,'tt',7)
insert into a values(4,'rt',7)
insert into a values(5,'gg',14)
insert into a values(6,'sr',22)
insert into a values(7,'qq',4)
insert into a values(8,'sd',7)
insert into a values(9,'vs',50)
insert into a values(10,'ws',10)
insert into a values(11,'rf',9)
go
select id,cast(t as varchar) t,a1,
[b1] =case when a1 between 0 and 5 then 'b05'
when a1 between 6 and 9 then 'b69'
when a1 between 10 and 14 then 'small'
when a1 between 15 and 30 then 'big'
else 'unknow' end
from a
drop table a
/*
id t a1 b1
----------- ------------------------------ ----------- ------
1 ta 0 b05
2 tc 4 b05
3 tt 7 b69
4 rt 7 b69
5 gg 14 small
6 sr 22 big
7 qq 4 b05
8 sd 7 b69
9 vs 50 unknow
10 ws 10 small
11 rf 9 b69
(所影响的行数为 11 行)
*/
select id,t,a1,case when a1 between 0 and 5 then 'b05',
when a1 between 6 and 9 then 'b09',
when a1 between 10 and 14 then 'small',
when a1 between 15 and 30 then 'big',
else null end as b1 from b