⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排序.txt

📁 SQL语言常用的一些命令各代码
💻 TXT
字号:
题目:
表A 
姓名 科目 分数 
--------------------------------- 
张三 语文 88 
张三 数学 90 
张三 政治 90 
李四 语文 90 
李四 数学 92 
王五 语文 70 
王五 数学 80 
刘二 语文 90 
刘二 政治 73 
----------------------------- 
生成报表如下: 
姓名 语文名次 数学名次 政治名次 总分名次 
张三 3 2 1 2 
李四 1 1 1 
王五 1 3 3 
刘二 4 3 4 */
 
代码:
drop table a
drop table b
 
create table A(name char(10),subject varchar(10) ,chenji int)
insert into A select '张三', '语文', 88
union all     select  '张三', '数学', 90 
union all     select '张三','政治', 90 
union all     select '李四','语文', 90 
union all     select '李四' ,'数学', 92 
union all     select '王五', '语文', 70
union all     select '王五', '数学', 80 
union all     select '刘二', '语文', 90 
union all     select '刘二', '政治', 73 
 
create table B(name char(10),数学 int,语文 int,政治 int)
--查询处理
DECLARE @s nvarchar(4000)
--交叉报表处理代码头
SET @s='Insert into B SELECT name'
--生成列记录水平显示的处理代码拼接(处理Item列)
SELECT @s=@s
  +','+QUOTENAME(subject)
  +N'=SUM(CASE subject WHEN '+QUOTENAME(subject,N'''')
  +N' THEN chenji END)'
FROM a
GROUP BY subject
--拼接交叉报表处理尾部,并且执行拼接后的动态SQL语句
EXEC(@s+N'
FROM a
GROUP BY name')
 
SELECT *,数学排名=(SELECT COUNT(DISTINCT 数学) FROM b WHERE 数学>=a.数学),
语文排名=(SELECT COUNT(DISTINCT 语文) FROM b WHERE 语文>=a.语文),
政治排名=(SELECT COUNT(DISTINCT 政治) FROM b WHERE 政治>=a.政治)
FROM b a

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -