名站网址导航为大家提供关于数据库教程相关的教程网站知识。
mssql关于一个表格结构的另外一种显示(表达意思不变)
由于表达能力不好,直接上图。在mssql环境中需要把图1的表转化成图2的表:, , 图3,2.1创建表,复制具体相关代码 具体相关代码如下:,create table #tb (ID int primary key, Class nvarchar(max), [Subject] nvarchar(max), Score int) inser,复制具体相关代码 具体相关代码如下:,select [Subject], [一(1)班]=[Score] ,[一(2)班]=[Score] ,[一(3)班]=[Score] from #tb,复制具体相关代码 具体相关代码如下:,--观察第二张表,表显然很多成绩是错误的,所以要消除错误 --消除错误的具体相关方法:先把错误的成绩设置为0,然后每一行取最大的数作为成绩,并按照科目来分组显示 select subject,[一(1)班]=,复制具体相关代码 具体相关代码如下:,select subject, [一(1)班]=max( case when [Class]='一(1)班' then [Score] else 0 end) ,[一(2)班]=max( case w,复制具体相关代码 具体相关代码如下:,declare @s nvarchar(4000) set @s='' Select @s=@s ',' quotename(Class) '=max( case when [Class]=' quo, 上面的简化,对于菜鸟级的我,理解着还是非常吃力的,所以我是在知道答案后,用 print @s一步一步的去分析的,特别是在select @s=@s .....的时间,在这里我找到了一种把单列数据连接,图4, 或许上面的需求太简单,那么咱们现在引出复杂点的需求,动态获取班级的成绩,比如咱们的需求可能是列出部分班级的成绩,具体相关代码如下:,复制具体相关代码 具体相关代码如下:,declare @s nvarchar(4000) set @s='' Select @s=@s ',' quotename(Class) '=max( case when [Class]=' quo, 本文主要实现表的另外一种显示,通经常用的于动态显示数据的例子中。难点在于分析过程和一些基本的sql语法。
复制具体相关代码 具体相关代码如下:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM