首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

(4)使用T-SQL PIVOT运算符进行透视转换   自SQL Server 2005开始引入了一个T-SQL独有的运算符-PIVOT,它可以对某个源或表表达式进行操作、透视数据,再返回一个结果...在PIVOT运算符圆括号后面,可以为结果制定一个别名。...换句话说,将透视每个源行潜在地转换成多个行,每行代表源透视一个指定值。   ...(4)T-SQL UNPIVOT运算符进行逆透视转换   和PIVOT类似,在SQL Server 2005引入了一个UNPIVOT运算符,它作用刚好和PIVOT运算符相反,即我们可以拿来做逆透视转换工作...:用于保存源表列值目标列明(这里是qty),用于保存源表列名目标列名(这里是custid),以及源表列名列表(A、B、C、D)。

8.9K20

那些年我们写过T-SQL(中篇)

集合操作符涉及查询应该有相同数,并对应列具有兼容类型(即低级别数据可以隐式转化为高级别数据,如int->bigint),查询列名称由第一次查询决定(在其中设置别名)。...行转列",而逆透视就是常说"转行",由于这种操作实际上已有标准SQL解决方案,不过很复杂和繁琐,这儿将SQL标准解决方案和PIVOT、UNPIVOT函数解决方案都描述出来。...3个阶段:第一个阶段为GROUP BY empid分组阶段;第二阶段为扩展阶段通过在SELECT字句中使用针对目标CASE表达式;最后一个阶段聚合阶段通过对每个CASE表达式结果聚合,例如SUM。...PIVOT透视 PIVOT实际是一个运算符,包含分组、扩展、聚合三个逻辑阶段 SELECT empid, A, B, C, D FROM ( SELECT empid, custid, qty FROM...;第二阶段通过CASE运算符生成(qty);最后一个阶段通过去qty IS NOT NULL删除不相关交叉点,这一点一定不能忘了。

3.7K70
您找到你想要的搜索结果了吗?
是的
没有找到

T-SQL基础(一)之简单查询

,SELECT语句经过一些逻辑处理而获取数据过程。...SELECT语句用于指定返回到查询结果集中,生成查询结果。注意,在SELECT子句之前执行子句无法使用SELECT子句中别名,否则会返回Invalid column name错误。...如,WHERE子句中多个表达式计算并没有确定顺序。 CASE...WHEN... CASE表达式是标量表达式,返回一个符合条件值。注意,CASE是表达式,不是语句,与COUNT类似。...CASE表达式有两种使用方式: CASE后面带有列名 这种情况下,WHEN子句中只能使用标量或返回标量表达式,这种形式称为简单格式。...CASE后面不带列名 这种情况下,WHEN子句中只能使用逻辑表达式,这种形式称为搜索格式。

4.1K20

MADlib——基于SQL数据挖掘解决方案(7)——数据转换之其它转换

惯用命名方式为下划线‘_’连接以下各字符串: pivot_values参数中列名,代表需要执行聚合数据。聚合函数名称。pivot_cols参数中列名,代表需要按值转成多数据。...pivot_cols TEXT 逗号分隔列名,指示需要按值转成多数据pivot_values TEXT 逗号分隔列名,指示需要执行聚合数据。...pivot_values参数中列名,代表需要执行聚合数据。 聚合函数名称。 pivot_cols参数中列名,代表需要按值转成多数据。 转置值。...pivot_cols TEXT 逗号分隔列名,指示需要按值转成多数据pivot_values TEXT 逗号分隔列名,指示需要执行聚合数据。...如果该参数为FALSE,将自动生成列名小于63字节,当列名长度超过63字节限制时,将创建一个字典输出文件,并向用户发送一个消息。 1 pivot函数参数说明 3.

2.9K20

T-SQL基础(二)之关联查询

在上篇博文中介绍了T-SQL查询基础知识,本篇主要介绍稍微复杂查询形式。 运算符 运算符作用是把为其提供作为输入,经过逻辑查询处理,返回一个结果。...SQL Server支持四个运算符:JOIN、APPLY、PIVOT、UNPIVOT,其中JOIN是标准SQL中运算符,APPLY、PIVOT和UNPIVOT是T-SQL扩展。...笛卡尔乘积 将一个输入每一行与另一个所有行匹配,即,**如果一张有m行a,另一张n行b,笛卡尔乘积后得到有m*n行,a+b**。...USE WJChi; SELECT * FROM dbo.UserInfo AS U1 CROSS JOIN dbo.UserInfo AS U2; 自联接中要为名指定别名,否则结果集中列名都将不明确...StackOverflow中扣出一张图片,可以概述外联接和内联接查询: [1240] 推荐阅读 T-SQL基础(一)之简单查询 What is the difference between “INNER

2.2K10

关于SQLServer 中行列互转实例说明

pivot 与 unpivot 函数是SQL2005新提供2个函数,PIVOT 通过将表达式某一唯一值转换为输出中多个来旋转值表达式,并在必要时对最终输出中所需任何其余值执行聚合。...UNPIVOT 与 PIVOT 执行相反操作,将值表达式转换为值。      ...下面我通过PIVOT 来阐述整个函数使用: 语法: SELECT ,     [第一个透视] AS ,      [第二个透视] AS , … [最后一个透视...] AS , FROM()  AS PIVOT( () FOR [] IN ( [第一个透视...很简单实现了转行,对于类似的数据处理灰常灰常实用,避免了使用case when 或者循环游标的复杂处理,大大提高了处理速度和代码整洁优雅。

1.1K10

关于SQLServer 中行列互转实例说明

pivot 与 unpivot 函数是SQL2005新提供2个函数,PIVOT 通过将表达式某一唯一值转换为输出中多个来旋转值表达式,并在必要时对最终输出中所需任何其余值执行聚合。...UNPIVOT 与 PIVOT 执行相反操作,将值表达式转换为值。      ...下面我通过PIVOT 来阐述整个函数使用: 语法: SELECT ,     [第一个透视] AS ,      [第二个透视] AS , ......[最后一个透视] AS , FROM()  AS PIVOT( () FOR []...很简单实现了转行,对于类似的数据处理灰常灰常实用,避免了使用case when 或者循环游标的复杂处理,大大提高了处理速度和代码整洁优雅。

1.5K70

T-SQL基础(二)之关联查询

在上篇博文中介绍了T-SQL查询基础知识,本篇主要介绍稍微复杂查询形式。 运算符 运算符作用是把为其提供作为输入,经过逻辑查询处理,返回一个结果。...SQL Server支持四个运算符:JOIN、APPLY、PIVOT、UNPIVOT,其中JOIN是标准SQL中运算符,APPLY、PIVOT和UNPIVOT是T-SQL扩展。...JOIN:联接查询时使用 APPLY:用于FROM子句中,分为CROSS APPLY和OUTER APPLY两种形式 PIVOT:用于行转列 UNPIVOT:用于列传行 联接查询 联接查询分为外联接、内联接...笛卡尔乘积 将一个输入每一行与另一个所有行匹配,即,如果一张有m行a,另一张n行b,笛卡尔乘积后得到有mn行,a+b*。...USE WJChi; SELECT * FROM dbo.UserInfo AS U1 CROSS JOIN dbo.UserInfo AS U2; 自联接中要为名指定别名,否则结果集中列名都将不明确

2K40

SQL基础查询方法

此列表指定结果集有三,并且每一都具有 Product 中相关名称、数据类型和大小。因为 FROM 子句仅指定了一个基,所以 SELECT 语句中所有列名都引用该。...此列表指定结果集有三,并且每一都具有Product中相关名称、数据类型和大小。因为FROM子句仅指定了一个基,所以SELECT语句中所有列名都引用该。...PIVOT 通过将表达式某一唯一值转换为输出中多个来旋转值表达式,并在必要时对最终输出中所需任何其余值执行聚合。...@@VERSION; 4.5 PIVOT -- PIVOT 语法 SELECT , [第一个透视] AS , [第二个透视] AS ,...[最后一个透视] AS , FROM () AS PIVOT ( () FOR

4.2K10

50个超强Pandas操作 !!

示例: 查看数值统计信息。 df.desrcibe() 6. 选择 df['ColumnName'] 使用方式: 通过列名选择DataFrame中。 示例: 选择“Salary”。...选择 df[['Column1', 'Column2']] 使用方式: 通过列名选择DataFrame中。 示例: 选择“Name”和“Age”。...选择特定行和 df.loc[index, 'ColumnName'] 使用方式: 通过索引标签和列名选择DataFrame中特定元素。 示例: 选择索引为1“Name”值。...示例: 创建一个透视,计算不同状态下平均工资。 pd.pivot_table(df, values='Salary', index='Status', aggfunc='mean') 23....示例: 选择“Name”包含字母“A”行。 df[df['Name'].str.contains('A', case=False, na=False)] 41.

27610

再见了!Pandas!!

示例: 查看数值统计信息。 df.describe() 6. 选择 df['ColumnName'] 使用方式: 通过列名选择DataFrame中。 示例: 选择“Salary”。...选择 df[['Column1', 'Column2']] 使用方式: 通过列名列表选择DataFrame中。 示例: 选择“Name”和“Age”。...选择特定行和 df.loc[index, 'ColumnName'] 使用方式: 通过索引标签和列名选择DataFrame中特定元素。 示例: 选择索引为1“Name”值。...示例: 创建一个透视,计算不同状态下平均工资。 pd.pivot_table(df, values='Salary', index='Status', aggfunc='mean') 23....示例: 选择“Name”包含字母“A”行。 df[df['Name'].str.contains('A', case=False, na=False)] 41.

11610

Windows server 2016——SQL server T-SQL查询语句

一.SQL简介 1.SQL和T-SQL SQL (结构化查询语言) 关系数据库标准语言 非过程化语言 统一语言 T-SQL是Transact-SQL缩写,是SQL在Microsoft SQL Server...-- 二.使用T-SQL语句操作数据 1.插入数据 insert [INTO] [列名] values # 可选 必须 可选 如果省略[列名],与中字段顺序保持一致...4.查询 查询中所有 SELECT * FROM table_name 查询employee 所有员工信息、 SELECT * FROM employee 例: 查询employee中姓名...column_alias FROM table_name # 改变结果集列名: 查询employee中姓名和身份证号两数据 SELECT 姓名 AS...5行数据 13、查询employee中“姓名”和“身份证号”两数据,查询结果“姓名”列名称显示为“name”,“身份证号”列名称显示为“idcard” 14、查询employee中所有员工信息,

18520

T-SQL教程_sql server 2008使用

文章目录 T-SQL基础技术 基本语法格式 代码准备:(可以按照我实例自行建立数据库) 1、投影查询 a、投影指定 b、投影全部 c、修改查询结果标题 d、去掉重复行 2、选择查询 a.表达式比较...T-SQL语言中最重要部分是它查询功能,查询语言用来对已经存在于数据库中数据按 照特定行、、条件表达式或者一定次序进行检索。...T-SQL对数据库查询使用SELECT语句,SELECT语句具有灵活使用方式和强大功能, SELECT语句基本语法格式如下: 基本语法格式 SELECT select_list /* 指定要选择...> 连接谓词还有以下形式: [] BETWEEN [] AND[] 由于连接多个存在公共,为了区分是哪个,引入名前缀指定连接...例如,student.stno表示studentstno, score.stno表示scorestno 经常用到连接如下: ●等值连接:之间通过比较运算符“=”连接起来,称为等值连接

1.6K30

再见,Excel数据透视;你好,pd.pivot_table

)下生存人数(Survived),那么仅需如下3步操作即可: 选择Excel菜单栏中插入数据透视选项卡 ?...02 利用pd.pivot_table实现 Pandas作为Python数据分析瑞士军刀,实现个数据透视自然不在话下,其接口函数为pivot_table,给出其核心参数如下: values : 待聚合列名...index : 用于放入透视结果中行索引列名 columns : 用于放入透视结果中索引列名 aggfunc : 聚合统计函数,可以是单个函数,也可以是函数列表,还可以是字典格式,默认聚合函数为均值...这里,理解pivot含义主要在于变形,更确切说是将一个长整形为宽,例如SQL中经典场景转行,表述就是这个问题。...那么二者主要区别在于: pivot仅适用于数据变形,即由长变为宽,相当于对数据进行了重组;而pivot_table除了数据重组外,还有一个额外效果,即数据聚合,即若重组后对应行标签和标签下取值不唯一

2.1K51
领券