要做一个行列查询。如图。谢谢

[复制链接]
查看11 | 回复7 | 2015-7-24 13:55:37 | 显示全部楼层 |阅读模式
要做一个行列查询。如图。谢谢

sql.png (5.84 KB, 下载次数: 3)
下载附件
2015-8-14 11:31 上传

回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
selectname,count(case when fruit='苹果' then 1 end ) as pingguo,count(case when fruit='香蕉' then 1 end ) as xiangjiao,count(case when fruit='桔子' then 1 end ) as juzi,count(1) from table group by name
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
bid01 发表于 2015-8-14 11:39
selectname,count(case when fruit='苹果' then 1 end ) as pingguo,count(case when fruit='香蕉' then...

有几十种水果,不可能一个个的写在程序里啊,有没有用命令自动把每一种水果放在每一列上?
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
WITH T AS(
SELECT '张三'
NAME ,'苹果' FRUIT FROM DUAL
UNION
SELECT '李四'
NAME ,'香蕉' FRUIT FROM DUAL
UNION
SELECT '王五'
NAME ,'橘子' FRUIT FROM DUAL
UNION
SELECT '王五'
NAME ,'橘子' FRUIT FROM DUAL
UNION
SELECT '李四'
NAME ,'橘子' FRUIT FROM DUAL
UNION
SELECT '张三'
NAME ,'橘子' FRUIT FROM DUAL)SELECT
NAME
,COUNT(CASE WHEN FRUIT='苹果' THEN 1 END ) AS 苹果
,COUNT(CASE WHEN FRUIT='香蕉' THEN 1 END ) AS 香蕉
,COUNT(CASE WHEN FRUIT='桔子' THEN 1 END ) AS 桔子
,COUNT(1)FROM
TGROUP BY NAME复制代码
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
wandaosh 发表于 2015-8-14 11:51
有几十种水果,不可能一个个的写在程序里啊,有没有用命令自动把每一种水果放在每一列上?

我只能帮你这么多了
http://www.itpub.net/thread-1916884-1-1.html
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
pivot函数不行么
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
wandaosh 发表于 2015-8-14 11:51
有几十种水果,不可能一个个的写在程序里啊,有没有用命令自动把每一种水果放在每一列上?

动态行转列。但前提是你要先了解普通行转列的原理和特点,再看下面的文章才好理解。
http://www.cnblogs.com/QQParadise/articles/1712093.html
回复

使用道具 举报

千问 | 2015-7-24 13:55:37 | 显示全部楼层
http://www.itpub.net/forum.php?m ... AA%C1%D0&page=1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行