求助,sql语句,包含三个表联接和列转行

liangruihh 2014-12-26 12:23:36
三个表,学生表,成绩表,补考成绩表,
学生表
stu_id stu_name class_id
1 张三 1-1
2 李四 1-1
3 王五 1-2

成绩表
stu_id subject score
1 java 77
1 c++ 80
2 java 67
2 c++ 58
3 java 56
3 c++ 85

补考成绩表
stu_id subject score
2 c++ 78
3 java 82

查询三个表得到学生的成绩和补考成绩
结果如下
stu_id stu_name java_score c++_score scores(总成绩) java补考成绩 c++补考成绩
1 张三 77 80 156
2 李四 67 58 125 78
3 王五 56 85 141 82

求问这个sql语句怎么写
...全文
528 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
简洁一下~
select 
a.stu_id,a.stu_name,
b.java_score,b.[c++_score],b.java_score+b.[c++_score] [scores(总成绩)],
isnull(c.[java补考成绩],'') [java补考成绩],
isnull(c.[c++补考成绩],'') [c++补考成绩]
from 学生表 a
left join 
  (select stu_id,
          sum(case subject when 'java' then score else 0 end) java_score,
          sum(case subject when 'c++' then score else 0 end) [c++_score]
   from 成绩表 group by stu_id
   )b on a.stu_id =b.stu_id 
left join
  (select stu_id,
          cast(sum(case subject when 'java' then score else null end)as varchar) [java补考成绩],
          cast(sum(case subject when 'c++' then score else null end)as varchar) [c++补考成绩]
   from 补考成绩表 group by stu_id
  )c on a.stu_id =c.stu_id
  • 打赏
  • 举报
回复
select 
a.stu_id,a.stu_name,
b.java_score,b.[c++_score],b.java_score+b.[c++_score] [scores(总成绩)],
case when c.[java补考成绩] is null or c.[java补考成绩]=0 then '' else c.[java补考成绩]end [java补考成绩],
case when c.[c++补考成绩] is null or c.[c++补考成绩]=0 then '' else c.[c++补考成绩]end [c++补考成绩]
from 学生表 a
left join 
  (select stu_id,
          sum(case subject when 'java' then score else 0 end) java_score,
          sum(case subject when 'c++' then score else 0 end) [c++_score]
   from 成绩表 group by stu_id
   )b on a.stu_id =b.stu_id 
left join
  (select stu_id,
          cast(sum(case subject when 'java' then score else 0 end)as varchar) [java补考成绩],
          cast(sum(case subject when 'c++' then score else 0 end)as varchar) [c++补考成绩]
   from 补考成绩表 group by stu_id
  )c on a.stu_id =c.stu_id
HelloWordGirl 2015-06-12
  • 打赏
  • 举报
回复
SELECT st.stu_id, st.stu_name, c.subject AS subjects, c.score AS scores, cs.cs AS Counts, se.subject, se.score INTO #StuScore FROM StudentTable st LEFT JOIN (SELECT c.stu_id,SUM(c.score)AS cs FROM Csore c GROUP BY c.stu_id)cs ON st.stu_id=cs.stu_id LEFT JOIN Csore c ON c.stu_id=st.stu_id LEFT JOIN Supplementary se ON cs.stu_id=se.stu_id AND se.subject=c.subject --定义变量 DECLARE @a VARCHAR(200), @b VARCHAR(200) SELECT @a = Isnull (@a + ',', '') + Quotename(subjects) FROM (SELECT DISTINCT subjects FROM #StuScore)AS A SELECT @b = Isnull(@b + '', '')+'补考' FROM (SELECT DISTINCT subjects FROM #stuscore)AS A DECLARE @sqls VARCHAR(200) SET @sqls=' with cet as ( select * from #StuScore as t pivot ( max(scores) for subjects in (' + @a + ') ) as r ),cet1 as ( select Stu_id,' + @b + ' from ( select Stu_id,' + @a + ' from #stuscore pivot ( max(score) for subjects in (' + @a + ') )as r )a ) select stu_id, stu_name,' + @a + ' from cet left join cet1 on cet.Stu_id=cet1.Stu_ID ' EXEC (@sqls) 可以两次列转行
习惯性蹭分 2015-06-11
  • 打赏
  • 举报
回复

if object_id('student') is not null
drop table student
go
create table student(stu_id int,stu_name varchar(100),class_id varchar(100))
insert into student
select 1 stu_id,'张三' stu_name ,'1-1' class_id
union all
select 2 stu_id,'李四' stu_name ,'1-1' class_id
union all
select 3 stu_id,'王五' stu_name ,'1-2' class_id
-------------------------------
if object_id('score') is not null
drop table score
go 
create table score(stu_id int,subject varchar(100),score int) 
insert into score  
select 1  stu_id,            'java'  subject,     77 score
union all
select 1  stu_id,            'c++'  subject,     80 score
union all
select 2  stu_id,            'java'  subject,     67 score
union all
select 2  stu_id,            'c++'   subject,     58 score
union all
select 3  stu_id,            'java' subject,     56 score
union all
select 3  stu_id,            'c++'   subject,    85 score
------------------------------------- 
if object_id('reScore') is not null
drop table reScore
go 
create table reScore(stu_id int,subject varchar(100),score int) 
insert into reScore    
select 2  stu_id,          'c++' subject,         78 score
union all
select 3  stu_id,         'java' subject,         82 score
 
 if object_id('tempdb..#tmp') is not null
 drop table #tmp
 select a.stu_id,a.stu_name,b.subject+'_score' as subject,b.score,1 as gp
 into #tmp
 from student a
 join score b on a.stu_id=b.stu_id
 union all
select a.stu_id,a.stu_name,'scores(总成绩)',sum(b.score),2
 from student a
 join score b on a.stu_id=b.stu_id
 group by a.stu_id,a.stu_name
 union all
 select a.stu_id,a.stu_name,b.subject+'_补考成绩', b.score,3
 from student a
 join rescore b on a.stu_id=b.stu_id

  declare @sql varchar(max)
select    @sql=  isnull(@sql+',','')+  quotename([subject],'[')
from #tmp group by subject,gp order by gp
set @sql='select * from (select stu_id,stu_name,[subject],score from #tmp ) a
pivot(max(score) for subject in('+@sql+'))p order by stu_id'
exec( @sql) 
一头大葱 2015-06-11
  • 打赏
  • 举报
回复
这里http://datamachine.iteye.com/admin/blogs/2217205讨论了JAVA+SQL下的动态行转列实现方法,具体到这个问题可用这样写:

A1:执行SQL关联3个表取数,要用left join确保学生是完整的;
A2:按stu_id分组;
A3:按科目分组;
A4:创建结果序表;
A5-B5:循环stu_id分组,根据subject分组动态添加结果记录,A4最终结果为:
还在加载中灬 2014-12-26
  • 打赏
  • 举报
回复
DECLARE @SQL NVARCHAR(MAX)
SET @SQL='SELECT T1.stu_id,T2.stu_name'
SELECT @SQL=@SQL+',ISNULL(SUM(CASE WHEN Stype=1 AND [subject]='''+subject+'''THEN[score]END),0)['+subject+']'
FROM 成绩表 GROUP BY subject
SET @SQL=@SQL+',ISNULL(SUM([score]),0)[scores(总成绩)]'
SELECT @SQL=@SQL+',ISNULL(SUM(CASE WHEN Stype=2 AND [subject]='''+subject+'''THEN[score]END),0)['+subject+'补考成绩]'
FROM 补考成绩表 GROUP BY subject
SET @SQL=@SQL+'FROM(SELECT *,1 Stype FROM 成绩表 UNION ALL SELECT *,2 FROM 补考成绩表)T1
JOIN 学生表 T2 ON T1.stu_id=T2.stu_id
GROUP BY T1.stu_id,T2.stu_name
ORDER BY T1.stu_id'
EXEC(@SQL)
frankl123 2014-12-26
  • 打赏
  • 举报
回复
stu_name    c++_score   java_score  scores总成绩   c++补考成绩     java补考成绩
----------- ----------- ----------- ----------- ----------- -----------
张三        80          77          157         NULL        NULL
李四        58          67          125         78          NULL
王五        85          56          141         NULL        82

(3 行受影响)
frankl123 2014-12-26
  • 打赏
  • 举报
回复
写了30分钟总算完全实现你的结果了
if object_id('学生表') is not null
drop table 学生表
go
create table 学生表(stu_id int,stu_name varchar(100),class_id varchar(100))
insert into 学生表
select 1 stu_id,'张三' stu_name ,'1-1' class_id
union all
select 2 stu_id,'李四' stu_name ,'1-1' class_id
union all
select 3 stu_id,'王五' stu_name ,'1-2' class_id
-------------------------------
if object_id('成绩表') is not null
drop table 成绩表
go 
create table 成绩表(stu_id int,subject varchar(100),score int) 
insert into 成绩表  
select 1  stu_id,            'java'  subject,     77 score
union all
select 1  stu_id,            'c++'  subject,     80 score
union all
select 2  stu_id,            'java'  subject,     67 score
union all
select 2  stu_id,            'c++'   subject,     58 score
union all
select 3  stu_id,            'java' subject,     56 score
union all
select 3  stu_id,            'c++'   subject,    85 score
------------------------------------- 
if object_id('补考成绩表') is not null
drop table 补考成绩表
go 
create table 补考成绩表(stu_id int,subject varchar(100),score int) 
insert into 补考成绩表    
select 2  stu_id,          'c++' subject,         78 score
union all
select 3  stu_id,         'java' subject,         82 score
  

--取成绩表中的科目
declare @subject varchar(100)
declare @subject_Renname varchar(100)
declare @subject_Renname1 varchar(100)
select @subject = ISNULL(@subject+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject) subject from 成绩表
)tb1

--字段重命名
select @subject_Renname = ISNULL(@subject_Renname+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject) +' ['+subject+'_score]' subject from 成绩表
)tb1
print @subject_Renname

--字段重命名后字段名
select @subject_Renname1 = ISNULL(@subject_Renname1+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject+'_score') subject from 成绩表
)tb1
print @subject_Renname1

--取补考成绩表中的科目名
declare @BKsubject varchar(100)
declare @BKsubject_Renname varchar(100)
declare @BKsubject_Renname1 varchar(100)
select @BKsubject = ISNULL(@BKsubject+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject) subject from 补考成绩表
)tb1
 
--字段重命名
 select @BKsubject_Renname = ISNULL(@BKsubject_Renname+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject) +' ['+subject+'补考成绩]' subject from 补考成绩表
)tb1
print @BKsubject_Renname

--字段重命名后字段名
select @BKsubject_Renname1 = ISNULL(@BKsubject_Renname1+',','') + tb1.subject 
from 
(
	select distinct QUOTENAME(subject+'补考成绩') subject from 补考成绩表
)tb1
print @BKsubject_Renname1


 declare @sql nvarchar(max)
 set @sql = '	select 
					tb4.stu_name
					,'+@subject_Renname1+',tb2.scores总成绩
					,'+@BKsubject_Renname1+' from 
					(
						select stU_ID,'+@subject_Renname+' 
						from 成绩表
						pivot 
						(max(score) for subject in ('+@subject+')) as pvt
					) tb1
					left join 
					(
						select stu_id
								,SUM(score) scores总成绩
						from 成绩表
						group by stu_id
					)tb2 on tb1.stu_id = tb2.stu_id
					left join 
					(
						select	stU_ID,'+@BKsubject_Renname+' 
						from 补考成绩表
						pivot
						(max(score) for subject in ('+@BKsubject+') )as pvt
					)tb3 on tb1.stu_id = tb3.stu_id
					left join 学生表 tb4 on tb1.stu_id = tb4.stu_id
				'
				print @sql
				exec(@sql)
卷序列号码为 00000030 4489:1826 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ 2.2.4 CONVERT在日期转换中的使用示例.sql │ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql │ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql │ │ 2.4.1 日期格式化处理.sql │ │ 2.4.2 日期推算处理.sql │ │ 2.4.3 特殊日期加减函数.sql │ │ 2.5.1 查询指定日期段内过生日的人员.sql │ │ 2.5.2 生成日期列的函数.sql │ │ 2.5.3 工作日处理函数(标准节假日).sql │ │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉.sql │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的星期几的次数-纵.sql │ 复杂年月处理.sql │ 统计--交叉+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数.sql │ │ 3.4.2 分段更新函数.sql │ │ 3.4.3 IP地址处理函数.sql │ │ 3.5.1 字符串比较函数.sql │ │ 3.5.2 字符串并集&交集处理示例.sql │ │ 3.5.3 字符串分拆并统计的处理示例.sql │ │ 3.5.5 字符串处理示例--列车车次查询.sql │ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql │ │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索.sql │ 分解公式.sql │ 字符串分拆--格式化.sql │ 得到一个字符串在另一个字符串中出现的次数.sql │ 数字转换成十六进制.sql │ 比较第一与第二个字符串,是否有连续的5个字符相同.sql │ 生成查询的模糊匹配字符串.sql │ 简繁转换.sql │ 统计一个中某个字符出现最多的字母.sql │ 非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字.sql │ 生成GBK汉字.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql │ │ 5.1.1 修改标识值的示例.sql │ │ 5.1.1 标识列与普通列互相转换的示例.sql │ │ 5.2.1 查法按日期生成流水号的示例.sql │ │ 5.2.1 查法生成流水号的示例.sql │ │ 5.2.2 使用编号按日期生成流水号的示例.sql │ │ 5.2.2 使用编号生成流水号的示例.sql │ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql │ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql │ │ 5.2.3 生成纯数字随机编号的示例.sql │ │ 5.3.2 融合了补号处理的编号生成处理示例.sql │ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql │ │ 5.3.3 使用临时进行编号重排的处理示例.sql │ │ 5.3.3 使用子查询进行编号重排的处理示例.sql │ │ 5.3.3 名次查询的处理示例.sql │ │ 5.4.1 查询已用编号分布情况的示例(临时法).sql │ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql │ │ 5.4.2 查询缺号分布情况的示例.sql │ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql │ │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个的字段做默认值.sql │ 以另一的字段生成编号.sql │ 关联部门流水号.sql │ 十六进制.sql │ 学号.sql │ 开票统计--涉及到连号处理.sql │ 新编号查询示例(分类查询).sql │ 新编号查询示例.sql │ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql │ 类别自动生成编号示例.sql │ 自已做标识列的例子.sql │ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql │ 项目编号=各项目独立流水号&各年不同.sql │ ├─第06章 │ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql │ │ 6.1.2 各种联接的使用示例.sql │ │ 6.1.2 多联结导致记录重复的示例.sql │ │ 6.1.3 使用UNION实现库存报的示例.sql │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例.sql │ │ 6.2.1 UNION ALL实现的分级汇总示例.sql │ │ 6.3.1 简单的交叉报处理示例.sql │ │ 6.3.2 多列转换为行的交叉报处理示例.sql │ │ 6.3.3 行值动态变化的交叉报处理示例(转换多列).sql │ │ 6.3.3 行值动态变化的交叉报处理示例.sql │ │ 6.3.4 化解字符串不能超过8000的方法.sql │ │ 6.3.5 特殊的交叉报处理示例.sql │ │ 6.4.1 库存明细帐处理示例(包含结存数).sql │ │ 6.4.1 库存明细帐处理示例.sql │ │ 6.4.2 同期及上期数据对比处理示例.sql │ │ 6.4.3 动态分组处理示例.sql │ │ 6.4.4 排行榜处理示例.sql │ │ │ └─其他 │ 交叉--复杂名次.sql │ 交叉-优先级处理.sql │ 交叉分析.sql │ 分级汇总.sql │ 分组交叉.sql │ 列转行.sql │ 固定行列报.sql │ 复杂交叉.sql │ 复杂交叉1.sql │ 多栏显示.sql │ 日期+星期+时间.sql │ 格式化报.sql │ 横转竖-1.sql │ 横转竖-字段名.sql │ 横转竖-生成字段名.sql │ 横转竖.sql │ 行列互换的复杂交叉.sql │ 限制列数的交叉.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时缓存实现的通用分页存储过程.sql │ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql │ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.sql │ │ 8.1.3 树形数据编号重排的通用存储过程.sql │ │ 8.1.3 树形数据编号重排示例.sql │ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql │ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql │ │ 8.1.5 删除节点处理的通用存储过程.sql │ │ 8.1.5 移动节点处理的通用存储过程.sql │ │ 8.2.2 树形数据层次显示处理示例.sql │ │ 8.2.2 树形数据广度排序处理示例.sql │ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql │ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql │ │ 8.2.5 校验中数据是否有循环编码的通用存储过程.sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql │ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql │ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql │ │ 8.2.8 逐级汇总示例(用户定义函数法).sql │ │ 8.3.1 产品配件清单查询示例.sql │ │ 8.3.2 最短乘车路线查询示例.sql │ │ │ └─其他 │ xml菜单.sql │ 宝塔形数据的处理-1.sql │ 宝塔形数据的处理.sql │ 树形数据生成xml.sql │ ├─第09章 │ │ 9.1.3 访问外部数据源方法总结.sql │ │ 9.5.1 二进制文件存取示例(T-SQL).sql │ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs │ │ a.txt │ │ Schema.ini │ │ │ └─其他 │ bcp-数据导入导出(全).sql │ bcp-数据导入导出-二进制文件.sql │ bcp-数据导出为文件.sql │ bcp数据存为XML.sql │ SQL Server到Oracle连接服务器的实现.sql │ SQL Server到SQLBASE连接服务器的实现.sql │ SQL Server到SYBASE连接服务器的实现.sql │ sql导出mysql.sql │ textcopy实现文件存取.sql │ Vb程序实现文件存取.sql │ 导入文本文件时如何指定字段类型.sql │ 导出northwind中Employees的图像.sql │ 将某个目录上的Excel,导入到数据库中.sql │ 数据导入导出基本方法.sql │ 用ASP上传&下载文件.sql
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个C:.│ sqlserver2000.txt│ ├─第01章│ 1.9.1 设置内存选项.sql│ 1.9.2(2) 使用文件及文件组.sql│ 1.9.2(3) 调整tempdb数据库的文件属性.sql│ ├─第02章│ │ 2.1 日期概念理解中的一些测试.sql│ │ 2.2.4 CONVERT在日期转换中的使用示例.sql│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql│ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql│ │ 2.4.1 日期格式化处理.sql│ │ 2.4.2 日期推算处理.sql│ │ 2.4.3 特殊日期加减函数.sql│ │ 2.5.1 查询指定日期段内过生日的人员.sql│ │ 2.5.2 生成日期列的函数.sql│ │ 2.5.3 工作日处理函数(标准节假日).sql│ │ 2.5.3 工作日处理函数(自定义节假日).sql│ │ 2.5.4 计算工作时间的函数.sql│ │ │ └─其他│ 交叉.sql│ 任意两个时间之间的星期几的次数-横.sql│ 任意两个时间之间的星期几的次数-纵.sql│ 复杂年月处理.sql│ 统计--交叉+日期+优先.sql│ ├─第03章│ │ 3.2 各种字符串分拆处理函数.sql│ │ 3.3 各种字符串合并处理示例.sql│ │ 3.4.1 分段截取函数.sql│ │ 3.4.2 分段更新函数.sql│ │ 3.4.3 IP地址处理函数.sql│ │ 3.5.1 字符串比较函数.sql│ │ 3.5.2 字符串并集&交集处理示例.sql│ │ 3.5.3 字符串分拆并统计的处理示例.sql│ │ 3.5.5 字符串处理示例--列车车次查询.sql│ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql│ │ 3.6.3 动态参数的存储过程示例.sql│ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql│ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql│ │ 3.7.4 text与image字段转换处理示例.sql│ │ 3.7.5 ntext字段的REPLACE处理示例.sql│ │ │ └─其他│ varbinary转换成字符串.sql│ 关键字搜索.sql│ 分解公式.sql│ 字符串分拆--格式化.sql│ 得到一个字符串在另一个字符串中出现的次数.sql│ 数字转换成十六进制.sql│ 比较第一与第二个字符串,是否有连续的5个字符相同.sql│ 生成查询的模糊匹配字符串.sql│ 简繁转换.sql│ 统计一个中某个字符出现最多的字母.sql│ 非法字符串处理.sql│ ├─第04章│ │ 4.1.5 在各种处理中应用排序规则的示例.sql│ │ 4.2.1 排序规则在拼音处理中的应用.sql│ │ 4.2.2 排序规则在全角与半角处理中的应用.sql│ │ │ └─其他│ 生成GB2312汉字.sql│ 生成GBK汉字.sql│ 自动获取汉字笔画.sql│ ├─第05章│ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql│ │ 5.1.1 修改标识值的示例.sql│ │ 5.1.1 标识列与普通列互相转换的示例.sql│ │ 5.2.1 查法按日期生成流水号的示例.sql│ │ 5.2.1 查法生成流水号的示例.sql│ │ 5.2.2 使用编号按日期生成流水号的示例.sql│ │ 5.2.2 使用编号生成流水号的示例.sql│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql│ │ 5.2.3 生成纯数字随机编号的示例.sql│ │ 5.3.2 融合了补号处理的编号生成处理示例.sql│ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql│ │ 5.3.3 使用临时进行编号重排的处理示例.sql│ │ 5.3.3 使用子查询进行编号重排的处理示例.sql│ │ 5.3.3 名次查询的处理示例.sql│ │ 5.4.1 查询已用编号分布情况的示例(临时法).sql│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql│ │ 5.4.2 查询缺号分布情况的示例.sql│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql│ │ 5.4.4 缺勤天数统计的处理示例.sql│ │ │ └─其他│ -补位法.sql│ 以另一个的字段做默认值.sql│ 以另一的字段生成编号.sql│ 关联部门流水号.sql│ 十六进制.sql│ 学号.sql│ 开票统计--涉及到连号处理.sql│ 新编号查询示例(分类查询).sql│ 新编号查询示例.sql│ 日期流水号.sql│ 材料流水号.sql│ 流水号.sql│ 箱编号连号处理.sql│ 类别自动生成编号示例.sql│ 自已做标识列的例子.sql│ 触发器自动维护已用&未用编号.sql│ 连续编号.sql│ 防止重复的示例.sql│ 项目编号=各项目独立流水号&各年不同.sql│ ├─第06章│ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql│ │ 6.1.2 各种联接的使用示例.sql│ │ 6.1.2 多联结导致记录重复的示例.sql│ │ 6.1.3 使用UNION实现库存报的示例.sql│ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql│ │ 6.1.6 随机出题的示例.sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例.sql│ │ 6.2.1 UNION ALL实现的分级汇总示例.sql│ │ 6.3.1 简单的交叉报处理示例.sql│ │ 6.3.2 多列转换为行的交叉报处理示例.sql│ │ 6.3.3 行值动态变化的交叉报处理示例(转换多列).sql│ │ 6.3.3 行值动态变化的交叉报处理示例.sql│ │ 6.3.4 化解字符串不能超过8000的方法.sql│ │ 6.3.5 特殊的交叉报处理示例.sql│ │ 6.4.1 库存明细帐处理示例(包含结存数).sql│ │ 6.4.1 库存明细帐处理示例.sql│ │ 6.4.2 同期及上期数据对比处理示例.sql│ │ 6.4.3 动态分组处理示例.sql│ │ 6.4.4 排行榜处理示例.sql│ │ │ └─其他│ 交叉--复杂名次.sql│ 交叉-优先级处理.sql│ 交叉分析.sql│ 分级汇总.sql│ 分组交叉.sql│ 列转行.sql│ 固定行列报.sql│ 复杂交叉.sql│ 复杂交叉1.sql│ 多栏显示.sql│ 日期+星期+时间.sql│ 格式化报.sql│ 横转竖-1.sql│ 横转竖-字段名.sql│ 横转竖-生成字段名.sql│ 横转竖.sql│ 行列互换的复杂交叉.sql│ 限制列数的交叉.sql│ ├─第07章│ │ 7.1 splitpage.asp│ │ 7.2.1 TOP n 实现的通用分页存储过程.sql│ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql│ │ 7.2.3 临时缓存实现的通用分页存储过程.sql│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql│ │ 7.3.1 实现随机分页的通用分页存储过程.sql│ │ 7.3.2 根据分类实现的分页存储过程.sql│ │ │ └─其他│ sp_cursor.sql│ 基本方法.sql│ ├─第08章│ │ 8.1.2 树形数据分级汇总示例.sql│ │ 8.1.3 树形数据编号重排的通用存储过程.sql│ │ 8.1.3 树形数据编号重排示例.sql│ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql│ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql│ │ 8.1.5 删除节点处理的通用存储过程.sql│ │ 8.1.5 移动节点处理的通用存储过程.sql│ │ 8.2.2 树形数据层次显示处理示例.sql│ │ 8.2.2 树形数据广度排序处理示例.sql│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql│ │ 8.2.2 树形数据深度排序处理示例(递归法).sql│ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql│ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql│ │ 8.2.5 校验中数据是否有循环编码的通用存储过程.sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql│ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql│ │ 8.2.8 逐级汇总示例(用户定义函数法).sql│ │ 8.3.1 产品配件清单查询示例.sql│ │ 8.3.2 最短乘车路线查询示例.sql│ │ │ └─其他│ xml菜单.sql│ 宝塔形数据的处理-1.sql│ 宝塔形数据的处理.sql│ 树形数据生成xml.sql│ ├─第09章│ │ 9.1.3 访问外部数据源方法总结.sql│ │ 9.5.1 二进制文件存取示例(T-SQL).sql│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs│ │ a.txt│ │ Schema.ini│ │ │ └─其他│ bcp-数据导入导出(全).sql│ bcp-数据导入导出-二进制文件.sql│ bcp-数据导出为文件.sql│ bcp数据存为XML.sql│ SQL Server到Oracle连接服务器的实现.sql│ SQL Server到SQLBASE连接服务器的实现.sql│ SQL Server到SYBASE连接服务器的实现.sql│ sql导出mysql.sql│ textcopy实现文件存取.sql│ Vb程序实现文件存取.sql│ 导入文本文件时如何指定字段类型.sql│ 导出northwind中Employees的图像.sql│ 将某个目录上的Excel,导入到数据库中.sql│ 数据导入导出基本方法.sql│ 用ASP上传&下载文件.sql

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧