34,873
社区成员
发帖
与我相关
我的任务
分享create table tb(name varchar(20),gz int)
insert into tb select '张三' ,1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name ,
max(case gzjb when '小于1000' then cast(gz as varchar) else '' end) '小于1000',
max(case gzjb when '1000-2000' then cast(gz as varchar) else '' end) '1000-2000',
max(case gzjb when '大于2000' then cast(gz as varchar) else '' end) '大于2000'
from
(
select name , gz , gzjb = case when gz < 1000 then '小于1000' when gz >= 1000 and gz <= 2000 then '1000-2000' when gz > 2000 then '大于2000' end from tb
) t
group by name
drop table tb
/*
name 小于1000 1000-2000 大于2000
-------------------- ------------------------------ ------------------------------ ------------------------------
李四 800
王五 1500
张三 1100
赵生 2200
(所影响的行数为 4 行)
*/create table tb(name varchar(20),gz int)
insert into tb select '张三' ,1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name ,
max(case gzjb when '小于1000' then gz else 0 end) '小于1000',
max(case gzjb when '1000-2000' then gz else 0 end) '1000-2000',
max(case gzjb when '大于2000' then gz else 0 end) '大于2000'
from
(
select name , gz , gzjb = case when gz < 1000 then '小于1000' when gz >= 1000 and gz <= 2000 then '1000-2000' when gz > 2000 then '大于2000' end from tb
) t
group by name
drop table tb
/*
name 小于1000 1000-2000 大于2000
-------------------- ----------- ----------- -----------
李四 800 0 0
王五 0 1500 0
张三 0 1100 0
赵生 0 0 2200
(所影响的行数为 4 行)
*/
select [name],
case when gz<1000 then gz else null end '小于1000',
case when gz>1000 and gz<2000 then gz else null end '1000~2000',
case when gz>2000 then gz else null end '大于2000'
from test
name 小于1000 1000~2000 大于2000
李四 800
王五 1500
张三 1100
赵生 2200create table tb(name varchar(20),gz int)
insert into tb select '张三',1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name ,
max(case when gz <1000 then ltrim(gz) else '' end) as [小于1000],
max(case when gz between 1000 and 2000 then ltrim(gz) else '' end) as [1000~2000],
max(case when gz> 2000 then ltrim(gz) else '' end) as [大于2000]
from tb
group by namecreate table tb(name varchar(20),gz int)
insert into tb select '张三',1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name ,
max(case when gz <1000 then gz else 0 end) as [小于1000],
max(case when gz between 1000 and 2000 then gz else 0 end) as [1000~2000],
max(case when gz> 2000 then gz else 0 end) as [大于2000]
from tb
group by name
select name
,case when gz<1000 then gz end [<1000]
,case when gz>=1000 and gz<=2000 then gz end [1000-2000]
,case when gz>2000 then gz end [>2000]
from 工资表
create table tb(name varchar(20),gz int)
insert into tb select '张三',1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name
,[小于1000]=max(case when gz <1000 then cast(gz as varchar) else '' end)
,[1000~2000]=max(case when gz> 1000 and gz <=2000 then cast(gz as varchar) else '' end)
,[大于2000]=max(case when gz> 2000 then cast(gz as varchar) else '' end)
from tb
group by name
drop table tb
/*
name 小于1000 1000~2000 大于2000
-------------------- --------------- ------------------ ------------------------------
李四 800
王五 1500
张三 1100
赵生 2200
(所影响的行数为 4 行)
*/create table tb(name varchar(20),gz int)
insert into tb select '张三',1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name
,[小于1000]=max(case when gz <1000 then gz else 0 end)
,[1000~2000]=max(case when gz> 1000 and gz <=2000 then gz else 0 end)
,[大于2000]=max(case when gz> 2000 then gz else 0 end)
from tb
group by name
drop table tb
/*
name 小于1000 1000~2000 大于2000
-------------------- ----------- ----------- -----------
李四 800 0 0
王五 0 1500 0
张三 0 1100 0
赵生 0 0 2200
(所影响的行数为 4 行)
*/create table tb(name varchar(20),gz int)
insert into tb select '张三',1100
insert into tb select '李四' , 800
insert into tb select '王五' , 1500
insert into tb select '赵生' , 2200
select name
,[小于1000]=max(case when gz <1000 then gz end)
,[1000~2000]=max(case when gz> 1000 and gz <=2000 then gz end)
,[大于2000]=max(case when gz> 2000 then gz end)
from tb
group by name
drop table tb
/*
name 小于1000 1000~2000 大于2000
-------------------- ----------- ----------- -----------
李四 800 NULL NULL
王五 NULL 1500 NULL
张三 NULL 1100 NULL
赵生 NULL NULL 2200
(所影响的行数为 4 行)
*/