• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 学习SQL语句(强大的group by与select from模式)

学习SQL语句(强大的group by与select from模式)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了group_by,select_from等相关知识,希望本文的分享对您有所帮助

本文介绍的是强大的group by使用与利用select from (select from)的模式生成SQL语句的代码。

强大的group by
代码如下:
select stdname,
isnull(sum( case stdsubject when ' 化学 ' then Result end), 0 ) [化学],
isnull(sum( case stdsubject when ' 数学 ' then Result end), 0 ) [数学],
isnull(sum( case stdsubject when ' 物理 ' then Result end), 0 ) [物理],
isnull(sum( case stdsubject when ' 语文 ' then Result end), 0 ) [语文]
from #student
group by stdname

group by与sum + case结合,可以将表1中的记录(行)变成表2的字段(列)。Sum里面如果没有case,那么出来的值,只能是全部科目的总和,用了case以后,就是某科的成绩;然后这里用了好几个sum,每个科目一个sum,于是表1中本来某人某科占一条记录的“行”就变成了表2里某人一条记录,每科做一个字段了

利用select from (select from)的模式生成SQL语句
代码如下:
declare @sql varchar( 4000 )
set @sql = ' select stdname '
select @sql = @sql + ' ,isnull(sum(case stdsubject when ''' + stdsubject + ''' then Result end),0) [ ' + stdsubject + ' ] '
from (select distinct stdsubject from #student) as a
select @sql = @sql + ' from #student group by stdname '
print @sql
exec(@sql)


代码如下:
select [name] into #tmpCloumns
from tempdb.dbo.syscolumns
where id = object_id( ' tempdb.dbo.#student2 ' )
and [name] <> ' stdname '
select * from #tmpCloumns

declare @strSql nvarchar( 800 )
select @strSql = ''
select @strSql = @strSql + ' union all ' + char ( 10 ) + char ( 13 ) +
' select [stdname], ''' + [name] + ''' as [科目],[ ' + [name] + ' ] ' + char ( 10 ) + char ( 13 ) +
' from [#student2] ' + char ( 10 ) + char ( 13 )
from #tmpCloumns

select @strSql = substring(@strSql, 11 ,len(@strSql)) + ' order by stdname,[科目] '
exec(@strsql)

以上节选自网上一些贴子的SQL代码,很早以前看到的,原链接我不知道了。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql筛选GROUP BY多个字段组合时的用法分享
  • 学习SQL语句(强大的group by与select from模式)

相关文章

  • 2017-05-11SQL字符型字段按数字型字段排序实现方法
  • 2018-12-05mysql如果数据不存在,则插入新数据,否则更新的实现方法
  • 2018-12-05 【MySQL 01】查询--总结
  • 2017-05-11win2003服务器下配置 MySQL 群集(Cluster)的方法
  • 2017-05-11Windows版Mysql5.6.11的安装与配置教程
  • 2018-12-05MySQL索引不生效的解决办法
  • 2017-05-11MySQL无法启动1067错误的又一种解决方法(机房断电)
  • 2017-05-11查看MySQL的错误日志的方法
  • 2018-12-05SQL server 2008 数据安全(备份和恢复数据库)
  • 2017-05-11mysql4.0升级到mysql5(4.1),解决字符集问题

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql备份及还原
    • MySQL中Union子句不支持order by的解决方法_MySQL
    • MySQL查看目前运行状况的两种方法
    • 完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题
    • mssql2005字符串连接方法 避免无效的连接错误
    • SQL server约束
    • MySQL异地增量备份
    • 删除SQL 某个表中重复的记录
    • php+ajax做的分页实例代码
    • mysql下完整导出导入实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有