SQL行转列 列转行
--行列互转
/******************************************************************************************************************************************************
以学生成绩为例子,比较形象易懂 整理人:中国风
(Roy)
日期
:2008.06.06 ******************************************************************************************************************************************************/
--1、行互列
--> --> (Roy)
生成測試數據
if
not
object_id
(
'Class'
)
is
null
drop
table
Class
Go
Create
table
Class(
[Student]
nvarchar
(
2
),
[Course]
nvarchar
(
2
),
[Score]
int
)
Insert
Class
select
N
'张三
'
,N
'语文
'
,
78
union
all
select
N
'张三
'
,N
'数学
'
,
87
union
all
select
N
'张三
'
,N
'英语
'
,
82
union
all
select
N
'张三
'
,N
'物理
'
,
90
union
all
select
N
'李四
'
,N
'语文
'
,
65
union
all
select
N
'李四
'
,N
'数学
'
,
77
union
all
select
N
'李四
'
,N
'英语
'
,
65
union
all
select
N
'李四
'
,N
'物理
'
,
85
Go
--2000方法
:
动态:
declare
@s
nvarchar
(
4000
)
Set
@s
=
''
Select
@s
=
@s
+
','
+
quotename
(
[Course]
)
+
'=max(case
when [Course]='
+
quotename
(
[Course]
,
''''
)
+
'
then [Score] else 0 end)'
from
Class
group
by
[Course]
exec
(
'select [Student]'
+
@s
+
'
from Class group by [Student]'
)
生成静态:
select
[Student]
,
[数学
]
=
相关文档:
1.查看数据库的版本
select @@version
2.查看数据库所在机器操作系统参数
exec master..xp_msver
3.查看数据库启动的参数
sp_configure
4.查看数据库启动时间
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看数据库服务器名和实例名
print ''Server Name...... ......
---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略
了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库
环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践
中发 ......
sql之left join、right join、inner join的区别
昨天面试8页笔试题目,基本上都是SQl 的,特别是这几个区别,记得不是很清晰,只记得left是以左表为主表,
right以右表为主表,导致做错了几个!今天搜了下!总算弄清楚了!以下是转帖!
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right j ......
http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx
1-9 parts are the most useful knowledge for you so far. ......
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......