sqlserver和mysql的行转列通用存储过程
sqlserver中:
1 /*
2 1 * Description:对数据表进行行列转换
3 2 * Author:llf
4 3 * 调用说明:exec SP_RowChangeCol '学生成绩表','姓名','课程','分数','desc',0,0,'where 年级=''一年级'''
5 4 * 该存储过程调用的相关函数:dbo.Get_StrArrayLength(@groupCol,',');dbo.dbo.Get_StrArrayStrOfIndex(@groupCol,',',1)
6 */
7
8 Alter proc SP_RowChangeCol
9 @tableName varchar(100), --要转换的数据表名(学生成绩表)
10 @groupCol varchar(100), --分组列(学生姓名)
11 @changeCol varchar(100), --要转换的列(考试科目)
12 @countCol varchar(100), --统计列(成绩)
13 @orderby varchar(4), --转换列的排序规则(升序asc,降序desc)
14 @isColSum int, --是否统计列(1是;0否)
15 @isRowSum int, --是否统计行(1是;0否)
16 @strWhere varchar(max) --查询条件('where 年级=''一年级''')
17 as
18 begin
19 declare @sqlhead varchar(8000),@sqlend varchar(8000)
20 ,@sql1 varchar(8000),@sql2 varchar(8000),@sql3 varchar(8000),@sql4 varchar(8000)
21 ,@i int,@ic varchar(20),@sql varchar(1000)
22
23
24  
相关文档:
一般建模可能都会用到:powerdesigner
但是,在建表的时候,我一直没有找到:
DEFAULT CHARACTER SET
COLLATE
两个选项。因此,想了个方法,点击:工具栏-》database-》edit current DBMS
然后,选中:MYSQL50::Script\Objects\Table\Options
在options末尾添加:
ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB ......
以下这篇文章论述上在什么情况下子查询比一般的内连接查询更加快速
http://www.mysqlperformanceblog.com/2010/03/18/when-the-subselect-runs-faster/
以下是我对mysql的order by和limit优化的建议,要适表的数据量和用来过滤列的唯一值的个数而定
(1)where子句中用来过滤结果的列所在索引的cadinality很小,即用相关 ......
昨天为一个项目做数据库,项目涉及到订单,在设计数据库字典的时候 就把这个表名定为了order,建表的时候怎么建都不对,提示是表名附近出现问题,当时觉得不可能啊 也许是字段类型哪儿出了问题,查了好久,试了好几次,还是不行,后来突然恍然大悟,order by是排序语句,order肯定是保留字,怎么可能做表名呢。。。立即把表 ......
delimiter // 改变界定符 为//
列出所有数据库 show databases;
列出所有数据表 show tables;
改变连接数据库 use databaes
插入记录 insert into users(UserName,Password) values('ivwshjj','123456');
删除记录 delete from users  ......
mssql,oracle中
test表:
1 5 abc
2 6 bcd
1 7 ade
2 8 adc
select a,b,c
from(
select a,b,c
,row_number()over(partition by a order by b desc) rn
from test
) &nb ......