SQL Pivot & UnPivot
create table students (
name varchar(25),
class varchar(25),
grade int
)
insert into students values ('张三','语文',20)
insert into students values ('张三','数学',90)
insert into students values ('张三','英语',50)
insert into students values ('李四','语文',81)
insert into students values ('李四','数学',60)
insert into students values ('李四','英语',90)
select * from students
pivot(
max(grade)
FOR [class] IN ([语文],[数学],[英语])
) AS pvt
/*
李四 81 60 90
张三 20 90 50
*/
--=========================================================================
create table students (
name varchar(25),
语文 int,
数学 int,
英语 int
)
GO
INSERT INTO students values ('李四',81,60,90)
INSERT INTO students values ('张三',20,90,50)
select *
from
students
unpivot
(
grade
for class in
([语文],[数学],[英语])
) AS upvt
/*
李四 81 语文
李四 60 数学
李四 90 英语
张三 20 语文
张三 90 数学
张三 50 英语
*/
相关文档:
在SQL server中经常会转换string到datetime类型,最常用的函数就是Convert。那么对Convert这个函数,不得不详细的研究一下。Convert这个函数的功能很强大,格式又很简单CONVERT ( data_type [ ( length ) ] , expression [ , style ] )。单就将string到datetime类型的转换就有很多样式。如: Convert(datetime, expression), ......
具体要注意的:
1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0 &n ......
osql 实用工具
osql 实用工具使您得以输入 Transact-SQL 语句、系统过程和脚本文件。该实用工具通过 ODBC 与服务器通讯。
语法
osql
[-?] |
&nb ......
--通过sql企业管理器修改和删除a表中数据时会出现错误
--sql企业管理Bug,通过程序或执行sql语句更新a表数据没有问题
--添加
Insert a (FName, FCode, FOther) Values('11','2222','33')
--修改
Update a Set FName='22_Edit' Where FCode='22'
--删除
Delete a Where FCode='22'
--查看a/b表数据
Select * from a ......
declare @SchemaName nvarchar(50)
set @SchemaName='dbo'
declare @CommandName nvarchar(50)
set @CommandName='spName'
SELECT
DB_NAME() AS [PROCEDURE_CATALOG],
  ......