一个简单功能的SQL 实现
1.假设有一张表示cj表
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 89 要求查询结果:
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 89
-- 创建cj表sql
CREATE TABLE `cj` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`subject` varchar(20) DEFAULT NULL,
`result` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- 插入数据SQL
INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(1, '张三', '语文', 80); INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(2, '张三', '数学', 90); INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(3, '张三', '物理', 85); INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(4, '李四', '语文', 85); INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(5, '李四', '数学', 92); INSERT INTO cj
(`id`, `name`, `subject`, `result`)
VALUES
(6, '李四', '物理', 89); -- 查询SQL
select
distinct a.name 姓名,
(select result from cj where name = a.name and subject = '语文') 语文,
(select result from cj where name = a.name and subject = '数学') 数学,
(select result from cj where name = a.name and subject = '物理') 物理
from cj a;
一个简单功能的SQL 实现的更多相关文章
- 手写一个简单的ElasticSearch SQL转换器(一)
一.前言 之前有个需求,是使ElasticSearch支持使用SQL进行简单查询,较新版本的ES已经支持该特性(不过貌似还是实验性质的?) ,而且git上也有elasticsearch-sql 插件, ...
- 一个简单的ORM制作(SQL帮助类)
一个简单的ORM制作大概需要以下几个类: SQL执行类 CURD操作类 其他酱油类 先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库, 事务没提供命名,若 ...
- CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能
CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能 效果图 这是红宝书里的例子,在这个例子中,下述功能全部登场,因此这个例子可作为使用Compute Shader的典型 ...
- 用JS做一个简单的电商产品放大镜功能
使用js制作一个简单的产品放大图 购物网站的产品页经常会放有一个产品展示图区.该图区有一个功能就是产品图的放大功能,移动左侧的焦点区域,可以放大细节部分观看,详情如下图.实现该功能的方法也非常简单. ...
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- SQL点滴28—一个简单的存储过程
原文:SQL点滴28-一个简单的存储过程 在表中写入一条数据同事要向另外一个表中写入信息,所以会使用到事务.实际使用的时候还会一次向一个表中吸入多条数据,下面的存储过程,将字符串拆分成数组然后写入到表 ...
- SQL点滴3—一个简单的字符串分割函数
原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,” 遇到其他情况只要稍加修改就好了 CREATE FUN ...
随机推荐
- ftrace 简介
ftrace 简介 ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析. 最早 ftrace 是一个 function tracer,仅能够记录内核的函数 ...
- 基于eclipse+maven创建web工程
Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...
- mssql 格式化字符串 /时间 年月日时分秒
比如:1 想格式化 000001,100 格式化为000100: 思路是这样的 1000000 +格式化的数字 取后6位: select right(cast(power(10,6) as var ...
- Struts2基本程序演示
Struts2启动配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=" ...
- Python字符串相关
#字符串的相关操作 #基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result) ...
- [转]busybox登陆后没要求输入密码的解决办法
转自:http://blog.chinaunix.net/uid-8058395-id-65785.html 1.制作好ramdisk之后 通过串口进入系统 却发现系统直接登录进去了 并没有要求用ro ...
- JS实现 java的Map
Map = function () { this.objects = new Object(); // 加入元素 this.put = function (key, value) { this.obj ...
- VSM and VEM Modules
Information About Modules Cisco Nexus 1000V manages a data center defined by a VirtualCenter. Each s ...
- GitHub上README写法暨markdown语法解读
原文: GitHub上README写法暨markdown语法解读 自从开始玩GitHub以来,就 越来越 感觉它有爱.最近对它的 README.md 文件颇为感兴趣.便写下这贴,帮助更多的还不会编写R ...
- VS2015开发的C++应用如何不依赖Visual C++ 2015 redistributable?
1,“项目属性,C/C++,代码生成”,“运行库改”为“多线程(/MT)”.* MT开头的是静态引用,MD开头的是动态引用,d结尾的是Debug调试版本,没有d的是Release发布版本,所以就一 共 ...