一个奇葩的SQL
需求


建表脚本
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的更多相关文章
- 一个有趣的SQL Server 层级汇总数据问题
看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题. 具体的问题如下: parent_id emp_id emp_nam ...
- 一个有趣的 SQL 查询(查询7天连续登陆)
一个有趣的 SQL 查询 一个朋友有这样一个SQL查询需求: 有一个登录表(tmp_test),包含用户ID(uid)和登录时间(login_time).表结构如下: . row ********** ...
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...
- 一个特殊的SQL Server阻塞案例分析
上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例.其实个人对SQL Server的阻塞还是颇有研究的.写过好几篇相关文章. 至于这里为什么要总结一下这 ...
- tp5 r3 一个简单的SQL语句调试实例
tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...
- MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- [nginx]nginx的一个奇葩问题 500 Internal Server Error phpstudy2018 nginx虚拟主机配置 fastadmin常见问题处理
[nginx]nginx的一个奇葩问题 500 Internal Server Error 解决方案 nginx 一直报500 Internal Server Error 错误,配置是通过phpstu ...
- VFP 用 SPT 来发布一条 SELECT 到一个新的 SQL Server 表
为了发布一条 SQL SELECT 语句来创建一个新的 SQL Server 表, SQL Server 数据库的 select into/bulkcopy 选项必须是可用的. 在默认情况下, 对于 ...
- 一个PHP的SQL注入完整过程
本篇文章介绍的内容是一个PHP的SQL注入完整过程,现在分享给大家,有需要的朋友可以参考一下 希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里 ...
随机推荐
- Mac小知识(不定时更新)
1.显示隐藏文件夹(在mac命令行中输入以下代码即可): 1)显示隐藏文件夹 defaults write com.apple.finder AppleShowAllFiles Yes &&a ...
- 将DataTable 导出为csv
//测试用的 导出查询的DataTable public static void Export(DataTable dtResult) { string strHeader =null; string ...
- WebStorm里面配置运行React Native的方案
以前开发react native项目总是需要打开WebStorm编写代码,Xcode跑项目.显得有点多余. 今天教大家如何直接使用WebStorm这个IDE直接完成编码+运行项目工作.这样就可以不用打 ...
- 一个简单的app自动登录Python脚本案例
- amazon oa1 - search in 2D array II [Leetcode] 240
https://leetcode.com/problems/search-a-2d-matrix-ii/ 巧解题,矩阵本身等于了一个binary search tree,从中值开始走 时间复杂度 O( ...
- Oracle优化总结
本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案.关键词 ORACLE数据库 环境调整 ...
- Pixel VS Point, FrameBuffer VS RenderBuffer
// How iOS app MVC works View, Window, AppDelegate ViewController, RootViewController // On Pixel VS ...
- eclipse控台不见
- linux标准io的copy
---恢复内容开始--- 1.linux标准io的copy #include<stdio.h> int main(int argc,char **argv) { if(argc<3) ...
- try,catch,finally与return
package com.zl.test; // try catch finally 内有returnpublic class Demo { public static void main(String ...