您的位置: 旅游网 > 社会

适合SQL初学者学习的SQL FAQ集锦(1)

发布时间:2019-09-13 20:20:40

1. 行列转换--普通    假设有张学生成绩表(CJ)如下: Name  Subject   Result张三  语文    80张三  数学    90张三  物理    85李四  语文    85 李四  数学    92李四  物理    82  想变成姓名  语文  数学  物理张三  80   90   85李四  85   92   82

declare @sql varchar(4000)set @sql = 'select Name'select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'from (select distinct Subject from CJ) as aselect @sql = @sql+' from test group by name'exec(@sql)

2. 行列转换--合并 有表A, id pid 1 1 1 2 1 3 2 1 2 2 3 1如何化成表B: id pid 1 1,2,3 2 1,2 3 1

创建一个合并的函数 create function fmerg(@id int)returns varchar(8000)asbegindeclare @str varchar(8000)set @str='select @str=@str+','+cast(pid as varchar) from 表A where id=@idset @str=right(@str,len(@str)-1)return(@str)Endgo

--调用自定义函数得到结果 select distinct id,dbo.fmerg(id) from 表A

小孩上火怎么办
小孩健脾的食物
五个月宝宝止咳方法
宝宝便秘吃的药
猜你会喜欢的
猜你会喜欢的