看程序有分

yangjinju2008 2009-05-02 09:01:49
select Section,[星期一],[星期二],[星期三],[星期四],[星期五]
from(
select a.Cname,b.Section,b.week from #课程表 a left join #時段表 b on a.CN0=b.id)a
pivot( max(cname) for week in([星期一],[星期二],[星期三],[星期四],[星期五]))
as pvt

大家帮忙看看 这段查询语言中的pivot ,pvt是什么意思还有pivot( max(cname) for week in([星期一],[星期二],[星期三],[星期四],[星期五]))
as pvt谢谢!
...全文
85 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzx21 2009-05-02
  • 打赏
  • 举报
回复
是别名,代表内嵌查询结果集
yangjinju2008 2009-05-02
  • 打赏
  • 举报
回复
别名这个懂,还以为是专门用的词呢
llsen 2009-05-02
  • 打赏
  • 举报
回复
pivot 介绍

pvt 是起别名
as 后面的是别名

比如select 1 as 'A' from table
这样取出来的数据列名是A
tian_ya1 2009-05-02
  • 打赏
  • 举报
回复
这样做,很麻烦!
yangjinju2008 2009-05-02
  • 打赏
  • 举报
回复
那要是用case的话 要怎么查询呢
zzjj999 2009-05-02
  • 打赏
  • 举报
回复
由于SQL Server 2005有了新的PIVOT运算符,就不再需要CASE语句和GROUP BY语句了。(每个PIVOT查询都涉及某种类型的聚合,因此你可以忽略GROUP BY语句。)PIVOT运算符让我们能够利用CASE语句查询实现相同的功能,但是你可以用更少的代码就实现,而且看起来更漂亮。列表C是一个示例PIVOT查询,它模仿的是我们的CASE语句查询。

这个查询的关键部分是PIVOT运算符后面的括号。在括号里面,我们使用一个SUM聚合函数计算用FOR Product IN()语句列出的每个Product的SalePrice总和。这个语句可能看起来有点别扭,因为IN()语句的值没有放在(')符号里,它们是文本值。这些值事实上被当作ColumnNames对待,它们在最终的结果集里被转换成列表字段。

如果你运行这个查询,得到的结果与我们从CASE语句查询获得的结果类似。但两者的一个重要不同之处是,这个查询仍然会为我们表格里列出的每个行返回一个行,这当然是不能令人满意的;我们希望获得一个直观的表格列表,列出每年的销售量。造成这种情况的问题在于我们一开始编写PIVOT查询的方式。

在这个查询的SELECT语句中,我们只是在SalesHistory列表里简单地列出了年,并为每个产品设定了一个字段。因此问题在于处理PIVOT语句的SELECT语句无法确定在PIVOT语句里要使用哪一个列。PIVOT语句将分组应用到了所有的列,后者既不是旋转字段也不是聚合字段。我们可以使用子查询来实现满意的结果。列表D是编写好的查询。这一小小的改动让我们能够用更少代码模拟CASE语句查询。

热学沸腾56 2009-05-02
  • 打赏
  • 举报
回复
up,mark
陌上花花 2009-05-02
  • 打赏
  • 举报
回复
帮顶下。
taz01 2009-05-02
  • 打赏
  • 举报
回复
不懂,但帮顶
accprenhailin 2009-05-02
  • 打赏
  • 举报
回复
pivot( max(cname) for week in([星期一],[星期二],[星期三],[星期四],[星期五]))
这个新东西 又让我学习了一点。
accprenhailin 2009-05-02
  • 打赏
  • 举报
回复
语法:
case when 条件1 then 结果1
when 条件2 then 结果2
when 条件3 then 结果3
[else 其他结果]
end

例子:
select userName,case when userSex = 1 then '男'
when userSex = 0 then '女'
else '保密'
end from TBL_User

备注:else 可要 可不要。



皓月明 2009-05-02
  • 打赏
  • 举报
回复
顶一下

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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