国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

行列轉換

2024-07-21 02:11:55
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

1. 行列轉換--普通

假設有張學生成績表(cj)如下
[姓名]  [學科]  [成績]
張三    語文    80
張三    數學    90
張三    物理    85
李四    語文    85
李四    數學    92
李四    物理    82
王五    數學    60

想變成    
[姓名] [語文] [數學] [物理]
張三   80     90     85
李四   85     92     82
王五   null   60     null

declare @sql varchar(4000)
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 學科 when ''' 學科 ''' then 成績 end) as ' 學科
  from (select distinct 學科 from cj) as a
set @sql = @sql ' from cj group by 姓名'
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)
as
begin
declare @str varchar(8000)
set @str=''
select @[email protected] ',' cast(pid as varchar) from 表a where [email protected]
set @str=right(@str,len(@str)-1)
return(@str)
end
go

--調用自定義函數得到結果
select distinct id,dbo.fmerg(id) from 表a
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗甸县| 萨嘎县| 砀山县| 舞阳县| 灵武市| 孝感市| 二连浩特市| 南华县| 吉木萨尔县| 富锦市| 津市市| 绥滨县| 商河县| 邹平县| 外汇| 济阳县| 五台县| 额尔古纳市| 泰兴市| 大名县| 汪清县| 永善县| 即墨市| 马尔康县| 武陟县| 水富县| 奇台县| 陈巴尔虎旗| 谢通门县| 江都市| 和龙市| 梁河县| 景德镇市| 尉氏县| 南皮县| 泸州市| 海城市| 清镇市| 清镇市| 渭源县| 长治县|