sql service (case when then else end ..... group by)
1.
原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读, 查询此表后的结果显式如下( 及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
写出此查询语句
USE T4st GO
IF(EXISTS(SELECT * FROM sysobjects WHERE name ='courseTes'))
DROP TABLE courseTes
GO CREATE TABLE courseTes
(
courseid INT NOT NULL PRIMARY KEY IDENTITY,
coursename NVARCHAR(50) NOT NULL,
score INT NOT NULL
) INSERT dbo.courseTes
( coursename, score )
VALUES ( N'java', -- coursename - nvarchar(50)
N'' -- score - int
)
INSERT dbo.courseTes
( coursename, score )
VALUES ( N'oracle', -- coursename - nvarchar(50)
N'' -- score - int
)
INSERT dbo.courseTes
( coursename, score )
VALUES ( N'xml', -- coursename - nvarchar(50)
N'' -- score - int
)
INSERT dbo.courseTes
( coursename, score )
VALUES ( N'jsp', -- coursename - nvarchar(50)
N'' -- score - int
)
INSERT dbo.courseTes
( coursename, score )
VALUES ( N'servlet', -- coursename - nvarchar(50)
N'' -- score - int
)
SELECT * FROM courseTes SELECT t.courseid,t.coursename,t.score,
(
CASE
WHEN t.score > 60 THEN 'pass'
ELSE 'fail'
END
)
AS mark
FROM courseTes AS t
运行结果如下:

2.
表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
时间 胜 负
2005-05-09 2 2
2005-05-10 1 2
SQL语句
USE T4st GO
IF(EXISTS(SELECT * FROM sysobjects WHERE name ='Score'))
DROP TABLE Score
GO CREATE TABLE Score
(
TimeId NVARCHAR(50) NOT NULL,
SuccessOrFail NVARCHAR(50) NOT NULL,
) INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-09',
N'胜'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-09',
N'胜'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-09',
N'负'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-09',
N'负'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-10',
N'胜'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-10',
N'负'
)
INSERT Score
(TimeId,SuccessOrFail)
VALUES (
N'2005-05-10',
N'负'
) SELECT * FROM Score SELECT s.TimeId AS '时间',
SUM(
CASE
WHEN s.SuccessOrFail ='胜' THEN 1
ELSE 0
END
) AS '胜',
SUM(
CASE
WHEN s.SuccessOrFail ='负' THEN 1
ELSE 0
END
) AS '负'
FROM Score AS s GROUP BY s.TimeId
运行结果如下:

sql service (case when then else end ..... group by)的更多相关文章
- 【SQL】CASE与DECODE
1. case..when case..when语句用于按照条件返回查询结果,如当我们想把emp表的工资按照多少分成几个不同的级别,并分别统计各个级别的员工数.SQL语句如下: select (cas ...
- Sql Service 的job作业新建过程
第一步:打开sql service 找到 SQL SERVER Agent 下的 jobs 如图: 注:如果没有找到,请查看你安装sql service 的版本 通过 select @@VERSI ...
- 数据库SQL Service 2014中文版的安装和配置教程
一.我的电脑环境 1.windows8.1(64位) 2.之前电脑没有安装数据库的软件 二.装机之前准备(我这儿提供百度云保存和下载) 1.下载一个“Sql service 2014中文版” http ...
- MySql 数据库导入到 SQL Service
1.下载安装ODBC驱动程序 地址:http://dev.mysql.com/downloads/connector/odbc/ 注意:系统的版本问题( 我的是64位的win7系统,但是SQL Ser ...
- BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息
SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...
- Sql Service存储过程分页
一起是用oracle数据库..感觉oracle数据库强大.查询速度是杠杠的.换了家公司用的是SQL SERVICE.以前用了1年现在捡回以前的记忆.动手写了动态SQL过存储过程分页.感觉和oracle ...
- MySQL 数据 导入到 SQL Service
1.下载安装ODBC驱动程序 地址:http://dev.mysql.com/downloads/connector/odbc/ 注意:系统的版本问题( 我的是64位的win7系统,但是SQL Ser ...
- 基于sql service会话共享,实现SSO
1:session的存储基于sql service数据库来存储 2:修改sql service中会话管理的系统存储过程 3:实现几个站点的会话共享 4:应用共享会话,实现单点登录
- SQL SERVICE中的锁
SQL SERVICE中的几个锁 SELECT * FROM dbo.TableName WITH (NOLOCK) --不加任何锁的读,脏读SELECT * FROM dbo.TableName W ...
随机推荐
- 第一个线性回归程序(基于Jupyter)
import pandas as pdimport seaborn as snssns.set(context="notebook", style="whitegrid& ...
- Python3 迭代器,生成器,装饰器
1.迭代器 迭代器有两个基本方法,iter()和next(),next()完成后会引发StopIteration异常 a='abcdef' b=iter(a) #创建迭代器对象 print(type( ...
- java.net.ProtocolException: Server redirected too many times
网页爬虫时,原来正常的代码,可能是因为网站做了cookie校验处理,报异常:java.net.ProtocolException: Server redirected too many times 表 ...
- ffmpeg实现mjpeg摄像头的采集-预览-拍照
摄像头输出是mjpeg格式的,需要实现在线预览功能,然后实现拍照功能 1.可以设置采集图像的分辨率,预览分辨率为640*480,可以自定义 2.ctrl+\ 拍照,ctrl+c 退出 void tes ...
- ZOJ 3689 Digging(DP)
Description When it comes to the Maya Civilization, we can quickly remind of a term called the end o ...
- 关于set和get机制的整理
首先这是es5新增的:定义是设置和获取对象属性时候出发的方法,属于修饰器: 犀牛书例子: function test(n){ return { get count(){ return n }, set ...
- java键盘IO
public class IO { public static void main(String[] args) throws Throwable { ScannerTest(); // testSc ...
- OSG学习:位置变换节点示例
osg::PositionAttitudeTransform节点. #include <osgViewer\Viewer> #include <osg\Node> #inclu ...
- 3dContactPointAnnotationTool开发日志(十九)
增加了输出接触点信息到文件功能.
- RHEL 6.4(i386)安装MySQL 5.6的方法