SQL语句求助:变表的列为行

辉歌 2005-12-27 07:48:43
有一个表,结构如下:
城市名 其他字段(不重要)
杭州 ...
杭州 ...
杭州 ...
杭州 ...
武汉 ...
武汉 ...
北京 ...
北京 ...

其中name字段的值总共就14个中的某一个。


现在要求统计在这个表中,每个城市出现的次数。

我做了个视图:

CREATE VIEW tgtj(县市,数量)
AS
SELECT SourceFrom,count(sourceFrom)
FROM article
Group by sourceFrom

其中SourceFrom就是城市名的字段名称了。

结果显示的是:
县市 数量
杭州 123
武汉 221
北京 333
....


短短两个字段,拉了很长一个瘦长的表。

我想做成:
杭州 武汉 北京 南京 ...
111 222 333 555

但是不知道该如何下手。请高手指教。
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
辉歌 2005-12-28
  • 打赏
  • 举报
回复
谢谢楼上的大哥。
hpym365 2005-12-27
  • 打赏
  • 举报
回复
呀 理解错了
。。。。。。。
又丢人了
hpym365 2005-12-27
  • 打赏
  • 举报
回复
--测试环境
create table city
(城市名 nvarchar(50))
insert city
select '杭州' union all
select '武汉' union all
select '武汉' union all
select '沈阳' union all
select '杭州' union all
select '大连' union all
select '杭州' union all
select '北京' union all
select '大连' union all
select '沈阳'
go
select * from city
go
--查询语句
create view v_city
as
select 城市名,count(城市名) as 出现次数
from city
group by 城市名
---结果----
城市名 出现次数
北京 1
大连 2
杭州 3
沈阳 2
武汉 2
辉歌 2005-12-27
  • 打赏
  • 举报
回复
谢谢。ok。
zjcxc 元老 2005-12-27
  • 打赏
  • 举报
回复
无论是2000, 还是现在的2005, 如果 article 中的 SourceFrom 是不确定的, 都无法用视图直接写出楼主要求的查询.
zjcxc 元老 2005-12-27
  • 打赏
  • 举报
回复
CREATE VIEW tgtj
AS
SELECT
杭州=sum(case SourceFrom when '杭州' then 1 else 0 end),
武汉=sum(case SourceFrom when '武汉' then 1 else 0 end),
北京=sum(case SourceFrom when '北京' then 1 else 0 end),
FROM article
zjcxc 元老 2005-12-27
  • 打赏
  • 举报
回复
CREATE VIEW tgtj(县市,数量)
AS
SELECT
杭州=sum(case SourceFrom when '杭州' then 1 else 0 end),
武汉=sum(case SourceFrom when '武汉' then 1 else 0 end),
北京=sum(case SourceFrom when '北京' then 1 else 0 end),
FROM article

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧