--Country Sex Population
--中国 男 340
--中国 女 260
--美国 男 45
--美国 女 55
--加拿大 男 51
--加拿大 女 49
--英国 男 40
--英国 女 60
--要的结果如下
--country 男 女
--中国 340 260
--美国 45 55
--加拿大 51 49
--英国 40 60
------解决思路----------------------
SELECT COUNTRY,
MAX(CASE WHEN SEX='男' THEN POPULICATION END) AS '男',
MAX(CASE WHEN SEX='女' THEN POPULICATION END) AS '女'
from tb
group by country
------解决思路----------------------
create table worldCount(country varchar(20),sex char(3),population int);
insert into worldCount values('中国','男',340);
insert into worldCount values('中国','女',260);
insert into worldCount values('美国','男',45);
insert into worldCount values('美国','女',55);
insert into worldCount values('加拿大','男',51);
insert into worldCount values('加拿大','女',49);
insert into worldCount values('英国','男',40);
insert into worldCount values('英国','女',60);
select country,sum(case when sex ='男' then population else 0 end) '男',
sum(case when sex ='女' then population else 0 end) '女'
from worldCount
group by country
------解决思路----------------------
行转列或 表连接即可
SELECT T1.Country,T1.[Population] AS[男],T2.[Population] AS[女]
FROM TB T1
JOIN TB T2 ON T1.Country=T2.Country
WHERE T1.Sex='男'AND T2.Sex='女'
------解决思路----------------------
select country,[男],[女] from worldCount pivot
(sum(population) for sex in ([男],[女])) pt