当前位置: 首页 > 编程笔记 >

SQLServer行转列实现思路记录

董良策
2023-03-14
本文向大家介绍SQLServer行转列实现思路记录,包括了SQLServer行转列实现思路记录的使用技巧和注意事项,需要的朋友参考一下
最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件)
相关的数据表:
1.Score表
 
2.[User]表
 
SQL语句如下:
--方法一:静态SQL
 
SELECT * FROM 
(SELECT UID,Name, Score,ScoreName FROM Score,[User] WHERE Score.UID=[User].ID) AS SourceTable 
PIVOT(AVG(Score)FOR ScoreName IN ([英语], [数学])) AS a 

--方法二:动态SQL
 
DECLARE @s NVARCHAR(4000) 
SELECT @s = ISNULL(@s + ',', '') + QUOTENAME(ScoreName) 
FROM (select distinct ScoreName from Score) as A ---列名不要重复 

Declare @sql NVARCHAR(4000) 
SET @sql=' 
select r.* from 
(select UID,Name,ScoreName,Score from Score,[User] where Score.UID=[User].ID) as t 
pivot 
( 
max(t.Score) 
for t.ScoreName in ('+@s+') 
) as r' 
EXEC( @sql) 

--方法三:Case When
 
select 
row_number() OVER(ORDER BY [User].ID) as 编号, 
UID as 用户编号, 
Name as 姓名, 
max(case ScoreName when '英语' then Score else 0 end) 英语, 
max(case ScoreName when '数学' then Score else 0 end) 数学 
from Score,[User] WHERE Score.UID=[User].ID 
group by UID,[User].ID,Name 
 类似资料:
  • 本文向大家介绍Vue 幸运大转盘实现思路详解,包括了Vue 幸运大转盘实现思路详解的使用技巧和注意事项,需要的朋友参考一下 转盘抽奖主要有两种,指针转动和转盘转动,个人觉得转盘转动比较好看点,指针转动看着头晕,转盘转动时指针是在转盘的中间位置,这里要用到css的transform属性和transition属性,这两个因为不常用最好是上网查查,用法和功能。   在html部分 总结 以上所述是小编给

  • 本文向大家介绍iOS实现新年抽奖转盘效果的思路,包括了iOS实现新年抽奖转盘效果的思路的使用技巧和注意事项,需要的朋友参考一下 临近春节,相信不少app都会加一个新的需求——新年抽奖 不多废话,先上GIF效果图 DEMO链接 1. 跑马灯效果 2. 抽奖效果 实现步骤: 一、跑马灯效果 其实很简单,就是通过以下两张图片,用NSTimer无限替换,达到跑马灯的效果 实现代码: 二、抽奖效果 1.初始

  • 本文向大家介绍python实现杨辉三角思路,包括了python实现杨辉三角思路的使用技巧和注意事项,需要的朋友参考一下 程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] ...... 方法:迭代,生成器 实现逻辑: 1.由于yield为生成器中断输出,所以有了第一个次输出为[1] 2.继续while下面的yield后的循环,此时list长度为1,将其代入L中的le

  • NutAop清晰简洁地实现了Aop中最常用,最常见的需求--控制特定方法的执行逻辑 了解这个模型,能够更好地理解Aop 基本思路 原方法(没有返回值) public void exe(){ //Do something } 被改造后 import org.nutz.aop.InterceptorChain; .... public void exe(){ try{

  • 本文向大家介绍实现一个两列等高布局,讲讲思路?相关面试题,主要包含被问及实现一个两列等高布局,讲讲思路?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 为了实现两列等高,可以给每列加上 padding-bottom:9999px; margin-bottom:-9999px;同时父元素设置overflow:hidden;

  • 本文向大家介绍Android实现返回键操作思路,包括了Android实现返回键操作思路的使用技巧和注意事项,需要的朋友参考一下 记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用LinkedList 捕获用户的返回键操作,响应返回键,返回上一个界面 MainActivity.java MiddleManager.java 以上就是本文的全部内容,希望对大家的学习有所帮