SQL Server行转列的方法解析
话不多说,请看代码:
/* SELECT <非透视的列>, [第一个透视的列] AS <列名称>, [第二个透视的列] AS <列名称>, ... [最后一个透视的列] AS <列名称>, FROM (<生成数据的 SELECT 查询>) AS <源查询的别名> PIVOT ( <聚合函数>(<要聚合的列>) FOR [<包含要成为列标题的值的列>] IN ( [第一个透视的列], [第二个透视的列], ... [最后一个透视的列]) ) AS <透视表的别名> <可选的 ORDER BY 子句>; */ declare @tb table ( cid int ,cname varchar(10) ) insert into @tb select 1,'aa' union all select 2,'bb' select * from @tb declare @idaa int ,@idbb int select aa,bb from( select cid,cname from @tb )as tt pivot( max(cid) for cname in([aa],bb) )piv
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
table 行转列的sql详解
一.要求 1 创建数据表 CREATE TABLE [dbo].[StuScore]( [stuid] [int] NOT NULL, [subject] [nvarchar](30) NULL, [score] [decimal](5, 1) NULL ) 2 插入测试数据 stuid subject score 3 chinese 76.0 3 math 73.0 4 chinese 82.0 5 chinese 66.0 5 math 93.0 6 chinese 67.0 7 math
-
sql动态行转列的两种方法
第一种方法: 复制代码 代码如下: select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when Month=03 then '3月' when Month=04 then '4月' when Month=05 then '5月' when Month=06 then '6月' when Month=07 then '7月' when Month=08 then '
-
Sql Server 2000 行转列的实现(横排)
我们用到的表结构如下: 三张表的关系为: 现有的测试数据为: 我们需要的结果是: 复制代码 代码如下: DECLARE @strSQL VARCHAR(8000) SET @strSQL = 'SELECT t.STUNAME [姓名]' SELECT @strSQL = @strSQL + ',SUM(CASE s.SNAME WHEN ''' + SNAME + ''' THEN g.[Score] END) [' + SNAME + ']' FROM (SELECT SNAME FROM
-
mssql 数据库表行转列,列转行终极方案
复制代码 代码如下: --行转列问题 --建立測試環境 Create Table TEST (DATES Varchar(6), EMPNO Varchar(5), STYPE Varchar(1), AMOUNT Int) --插入數據 Insert TEST Select '200605', '02436', 'A', 5 Union All Select '200605', '02436', 'B', 3 Union All Select '200605', '02436', 'C', 3
-
SQLServer行转列实现思路记录
最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习.(面试题请参见附件) 相关的数据表: 1.Score表 2.[User]表 SQL语句如下: --方法一:静态SQL 复制代码 代码如下: SELECT * FROM (SELECT UID,Name, Score,ScoreName FROM Score,[User] WHERE Score.UID=[User].ID) AS SourceTable PIVOT(AVG(Sco
-
SQL查询语句行转列横向显示实例解析
本文分享了两个有关SQL查询语句行转列横向显示的示例,供大家参考,具体内容如下 示例1: 在SQL查询语句行转列横向显示中access中没有CASE,要用IIF代替 select iif(sex= '1 ', '男 ', '女 ') from tablename select country, sum(case when type='A' then money end) as A, sum(case when type='B' then money end) as B, sum(case
-
sql多表行转列、级联行转列示例代码
现有两表A,B A表存储商品点击日志,B表存储商品 要求显示当天所有商品点击量列表并附带总数并按天排序 复制代码 代码如下: declare @sql varchar(2000) set @sql='select CONVERT(varchar(100), a.[Time], 23) as 时间,count(b.title) as 总数' select @sql =@sql+ ',sum(case b.title when '''+Title+''' then 1 else 0 end) as
-
MySQL存储过程中使用动态行转列
本文介绍的实例成功的实现了动态行转列.下面我以一个简单的数据库为例子,说明一下. 数据表结构 这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩 三张表:学生表.课程表.成绩表 学生表 就简单一点,学生学号.学生姓名两个字段 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`
-
SQL Server行转列的方法解析
话不多说,请看代码: /* SELECT <非透视的列>, [第一个透视的列] AS <列名称>, [第二个透视的列] AS <列名称>, ... [最后一个透视的列] AS <列名称>, FROM (<生成数据的 SELECT 查询>) AS <源查询的别名> PIVOT ( <聚合函数>(<要聚合的列>) FOR [<包含要成为列标题的值的列>] IN ( [第一个透视的列], [第二个透视的列
-
Sql Server数据把列根据指定内容拆分数据的方法实例
今天由于工作需要,需要把数据把列根据指定的内容拆分数据 其中一条数据实例 select id , XXXX FROM BIZ_PAPER where id ='4af210ec675927fa016772bf7dd025b0' 拆分方法: select t3.id ,t3.XXXX as XXXX from ( select A.id , B.XXXX from ( SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX
-
浅谈基于SQL Server分页存储过程五种方法及性能比较
在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userName nvarchar(20) not null, userPWD nvarchar(20) not null, u
-
Sql Server事务语法及使用方法实例分析
本文实例讲述了Sql Server事务语法及使用方法.分享给大家供大家参考,具体如下: 事务是关于原子性的.原子性的概念是指可以把一些事情当做一个不可分割的单元来看待.从数据库的角度看,它是指应全部执行或全部不执行的一条或多条语句的最小组合. 为了理解事务的概念,需要能够定义非常明确的边界.事务要有非常明确的开始和结束点.SqlServer中的每一条select.insert.update.delete语句都是隐式事务的一部分.即使只发出一条语句,也会把这条语句当做一个事务-或执行语句的所有内容
-
SQL server分页的4种方法示例(很全面)
这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及到具体例子的,设定查询第2页,每页含10条记录. 首先说一下SQL server的分页与MySQL的分页的不同,mysql的分页直接是用limit (pageIndex-1),pageSize就可以完成,但是SQL server 并没有limit关键字,只有类似limit的top关键字.所以分页起来比较麻烦. SQL serve
-
SQL server分页的四种方法思路详解(最全面教程)
目录 方法一:三重循环 思路 方法二:利用max(主键) 方法三:利用row_number关键字 第四种方法:offset /fetch next(2012版本及以上才有) 总结 这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及到具体例子的,设定查询第2页,每页含10条记录. 首先说一下SQL server的分页与MySQL的分页的不同,mysql的分页直接是用lim
-
SQL Server Parameter Sniffing及其改进方法
SQL Server 在处理存储过程的时候,为了节省编译时间,是一次编译,多次重用.当第一次运行时代入值产生的执行计划,不适用后续代入的参数时,就产生了parameter sniffing问题. create procedure Sniff1(@i int) as SELECT count(b.SalesOrderID),sum(p.weight) from [Sale SQL Server 在处理存储过程的时候,为了节省编译时间,是一次编译,多次重用.当第一次运行时代入值产生的执行计划,不适用
-
用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型 data.w #选择表格
-
让Django支持Sql Server作后端数据库的方法
好久木有在windows里面写python了..这本也不是事儿,python嘛,只要系统里面装好了,那大多数代码都是可以正常运行的..然而有时候需要调用微软那一套特定的API,什么Java啊python啊总有水土不服的时候. 今天我就将我在Mac里面写好的Django项目移到win10上.一开始图省事儿,我用的sqlite3当后端数据库,但单位要求在项目正式上线的时候用SQL Server,于是,记得django 1.9默认不支持微软那一套的我,就开始在网上搜啊搜,现是发现有人说只要装好一个名为
-
SQL Server将一列的多行内容拼接成一行的实现方法
下面大家先看下示例代码: 示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便
随机推荐
- php中的比较运算符详解
- asp执行带参数的sql语句实例
- Sqlserver 自定义函数 Function使用介绍
- JS中Eval解析JSON字符串的一个小问题
- js遮罩效果制作弹出注册界面效果
- php和editplus正则表达式去除空白行
- MySQL数据库操作常用命令小结
- php使用CURL不依赖COOKIEJAR获取COOKIE的方法
- JS+CSS实现下拉列表框美化效果(3款)
- 利用XML开发留言板简单的例子
- jQuery Mobile漏洞会有跨站脚本攻击风险
- Java程序生成exe可执行文件详细教程(图文说明)
- Java使用Apache POI库读取Excel表格文档的示例
- android onTouchEvent处理机制总结(必看)
- Mac 下 Android Studio 不打印日志的解决办法
- 用javascript实现源代码的隐藏与解密的方法
- strcat 函数的使用指南
- C#实现简单屏幕监控的方法
- Python2.7下安装Scrapy框架步骤教程
- Android获得设备状态信息、Mac地址、IP地址的方法