不写sql好久,都有些陌生了,刚好朋友问我一个问题,就顺便写了这些
select * from information_schema.columns where table_name='authors';
要完成的一个小功能:将一个数据表的列变成行,将某一单行相应的列值放到其右边。具体效果为图片中所示。
说明:下面的存储过程在SQL Server 2000上成功运行,使用自带的pubs数据库authors表。
sql 代码
- create PROC sp_row_col @au_id varchar(50)
- as
- /* 声明游标 */
- declare colCursor CURSOR for
- select column_name from information_schema.columns where table_name='authors'; /* 取得列名 */
-
- declare @col varchar(50);
- declare @colValue varchar(100);
- declare @sqlStr varchar(200)
-
- open colCursor; /* 打开游标 */
- fetch next from colCursor into @col;
- while @@FETCH_STATUS=0 /* 系统变量@@FETCH_STATUS为0表示FETCH语句成功,-1:失败或此行不在结果集中,-2:被提取的行不存在. 注:不同的DBMS这里有所不同*/
- begin
- set @sqlStr = 'declare valCursor CURSOR for SELECT '+ @col + ' FROM authors where au_id='''+@au_id+''''; /* 用变量作select列名的解决办法,不知道还有没有更好一些的? */
- exec (@sqlStr);
-
- open valCursor;
- fetch next from valCursor into @colValue;
- close valCursor /* 关闭游标 */
- deallocate valCursor /* 释放游标 */
-
- insert into row_col values(@col, @colValue);
- fetch next from colCursor into @col;
- end
- close colCursor /* 关闭游标 */
- deallocate colCursor /* 释放游标 */
- return
-
- go
- use pubs;
- create table row_col (column_name varchar(50), col_value varchar(50));
- exec sp_row_col '172-32-1176'
- select * from row_col;
- select * from authors;
-
ps: 写这些google了N多次,主要是原来都还没有用过游标,汗ing,还有就是解决如何在语句中嵌入变量这个问题。 开始慢慢地体会到自己知识的浅薄了。
- 描述: 运行效果图
- 大小: 14.1 KB
分享到:
相关推荐
实现一个user数据表的增、删、改、查等操作,是学习ado。net 入门的好例子
《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...
《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...
《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...
sqlserver脚本批量执行,比sqlcmd快一点,练手级别的程序,见笑了。
SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录 第Ⅰ部分 SQL Server 2008管理基础 第1章 SQL Server 2008管理...
计算机毕业设计论文, 毕设论文,毕设练手好项目,ASP.NET 师电子化信息库的设计与实现 , 关注博客,持续更新系统项目,asp+sqlserver2000网络书店系统 这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有...
SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录 第Ⅰ部分 SQL Server 2008管理基础 第1章 SQL Server 2008管理...
SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录 第Ⅰ部分 SQL Server 2008管理基础 第1章 SQL Server 2008管理...
系统通过面向对象分析方法,使用MVC框架技术进行设计和开发,将Visual Studio当作首要开发软件,SQL Server作为后台数据库。所有的过程都由UML来完成。
该项目使用C#+SQL Server数据库实现的班级管理系统项目,练手用的,需要的拿去,不能说好,但是能用。
计算机毕业设计论文, 毕设论文,毕设练手好项目,ASP.NET 师电子化信息库的设计与实现 , 关注博客,持续更新系统项目,asp+SQLServer网上书店系统设计 这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有...
SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录 第Ⅰ部分 SQL Server 2008管理基础 第1章 SQL Server 2008管理...
很多书籍包括教材介绍pivot语句不详细,难以理解其查询结果,这样势必会造成使用该语句时有困难,本文理论讲解透彻,结合例题分析,最后给出实验题目让你练手,以尽快掌握其使用。
主要使用C++语言,QT,...代码注释比较多,适合刚开始学QT,想利用一些项目练手的人。 详细的开发文档写在了资源文件的word中,为了使项目更好在你们电脑上运行,还介绍了数据库的配置。使用户能够看见整个项目的运行。
大三练手成品 开发平台Visual studio2005+SQL 2000
asp .net 项目源码,记得还有论文等文献,适合用于毕业设计、课程设计、练手学习等
基于VS,SqlServer采用c#语言开发的简易音乐播放器,可实现不同用户导入本地音乐播放,对不同音乐进行评价反馈,申请成为音乐人,注销账号等功能 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、...
50道经典SQL练习题,练手和复习都很不错 关于 这个项目主要来源是之前在网上流传的50道SQL练习题,大小问加起来50道左右,在不断流传的过程中也会有差异,我看到的最早来源是 使用项目 原版用的是Sql Server,在这里...
针对中小型酒店设计的管理系统,基于.Net Framework 4.5.2设计,C#语言编写,采用SQL Server 2008 R2数据库作为数据支持.zip 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/竞赛学习等...