需求

建表脚本

 CREATE TABLE [dbo].[A](
[dm] [varchar](5) NOT NULL,
[dmmc] [varchar](20) NULL
) ON [PRIMARY] GO
CREATE TABLE [dbo].[B](
[xh] [varchar](5) NOT NULL,
[km01] [varchar](25) NULL,
[km02] [varchar](25) NULL,
[km03] [varchar](25) NULL
) ON [PRIMARY]
 USE [test]
GO
/****** Object: StoredProcedure [dbo].[sp_pivotA] Script Date: 2016/4/22 19:07:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO ALTER PROCEDURE [dbo].[sp_pivotA] AS
BEGIN
SET NOCOUNT ON;
declare @sql varchar(8000)
select @sql= LEFT(t,LEN(t)-1)
from
(
SELECT distinct ( select '['+dm+'],' from A FOR XML PATH('') )as t from A as d
)e
declare @sql2 varchar(8000)
set @sql2='SELECT ''学号'' as''xh'',* FROM A
pivot(MAX(A.dmmc) FOR dm IN('+@sql+') )as P' exec(@sql2)
END

调用 存储过程

 DROP TABLE #tmp1
go
select * into #tmp1 from B where 1=2
insert INTO #tmp1 EXEC [dbo].[sp_pivotA] select * from #tmp1
union all
select * from B

如果想让km01,...显示成中文名称,也就是列名显示成第一行的那些中文,也可以 把B表先逆透视转换一下  然后去跟A表关联  然后在透视转换回来就可以 了。

一个奇葩的SQL的更多相关文章

  1. 一个有趣的SQL Server 层级汇总数据问题

        看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题.          具体的问题如下:     parent_id emp_id emp_nam ...

  2. 一个有趣的 SQL 查询(查询7天连续登陆)

    一个有趣的 SQL 查询 一个朋友有这样一个SQL查询需求: 有一个登录表(tmp_test),包含用户ID(uid)和登录时间(login_time).表结构如下: . row ********** ...

  3. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

    原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...

  4. 一个特殊的SQL Server阻塞案例分析

    上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例.其实个人对SQL Server的阻塞还是颇有研究的.写过好几篇相关文章. 至于这里为什么要总结一下这 ...

  5. tp5 r3 一个简单的SQL语句调试实例

    tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...

  6. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  7. [nginx]nginx的一个奇葩问题 500 Internal Server Error phpstudy2018 nginx虚拟主机配置 fastadmin常见问题处理

    [nginx]nginx的一个奇葩问题 500 Internal Server Error 解决方案 nginx 一直报500 Internal Server Error 错误,配置是通过phpstu ...

  8. VFP 用 SPT 来发布一条 SELECT 到一个新的 SQL Server 表

    为了发布一条 SQL SELECT 语句来创建一个新的 SQL Server 表,  SQL Server 数据库的 select into/bulkcopy 选项必须是可用的. 在默认情况下, 对于 ...

  9. 一个PHP的SQL注入完整过程

    本篇文章介绍的内容是一个PHP的SQL注入完整过程,现在分享给大家,有需要的朋友可以参考一下 希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里 ...

随机推荐

  1. DataTable,DataGridVIew转换到xls 方法 (转)

    private void dataTableToCsv(DataTable table, string file) { string title = ""; FileStream ...

  2. ios 改变push方向,可以把present改为push方式

    - (void)pop{    CATransition* transition = [CATransition animation];    transition.duration = 0.5;   ...

  3. 细节小bug

    1. function devChange(value){ $("#multipleLeft").empty(); ReportRemote.getDeviceFlow(value ...

  4. your local repository contains non-ascii

    安装CCS时候遇到  your local repository contains non-ascii 问题. 解决方法:  不要在中文目录下安装.

  5. Array.prototype.sort()对数组对象排序的方法

    Array.prototype.sort()方法接受一个参数——Function,Function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行 ...

  6. Android下载更新代码

    其实是昨天反编译一个apk,给它添加一个自动更新的功能用到的.为了在smali下方便查看,代码写的不规范,反正到了smali都一个吊样~~~~ 权限: <uses-permission andr ...

  7. Linux下搭建FTP服务器

    实习的公司有一台老服务器转作为FTP服务器,老大把这个任务交给了我.这两天边学边卖的捣腾起来,总算搞成.现在记录下来,加深映像,也以便以后查看复习. 服务器安装的是:Red Hat Enterpris ...

  8. 用shebang编写一个ssh自动登陆脚本

    单例模式是软件开发中非常普遍的一种模式.它的主要作用是确保系统中,始终只存在一个类的实例对象. 这样做的好处有两点: 1.对于需要频繁使用的对象,在每次使用时,如果都需要重新创建,并且这些对象的内容都 ...

  9. LeetCode-Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  10. Monkey工具使用详解

    上节中介绍了Monkey工具使用环境的搭建,传送门..本节我将详细介绍Monkey工具的使用. 一.Monkey测试简介 Monkey测试是Android平台自动化的一种手段,通过Monkey程序模拟 ...