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 ...
随机推荐
- 【Python 开发】第一篇:计算机基础
一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言? 语言就是一种事物与另一种事物沟通的介质.所以说编程语言是程序员跟计算机沟通的介质. 什么是编程: 准确来说就是程序员用计算机所能 ...
- 【Python 开发】第三篇:python 实用小工具
一.快速启动一个web下载服务器 官方文档:https://docs.python.org/2/library/simplehttpserver.html 1)web服务器:使用SimpleHTTPS ...
- leetcode个人题解——#5 Container with most water
class Solution { public: string longestPalindrome(string s) { int length = s.length(); ) return s; ; ...
- Python3 小工具-僵尸扫描
僵尸机的条件: 1.足够闲置,不与其他机器进行通讯 2.IPID必须是递增的,不然无法判断端口是否开放 本实验僵尸机选择的是Windows2003 from scapy.all import * im ...
- POJ 1639 Picnic Planning(最小度限制生成树)
Description The Contortion Brothers are a famous set of circus clowns, known worldwide for their inc ...
- POJ 1995 (快速幂)
这道题普通做法会发生溢出且会超时,应当用快速幂来求解. 快速幂讲解 #include <cstdio> #include <cmath> using namespace std ...
- [贪心经典算法]Kruskal算法
Kruskal算法的高效实现需要一种称作并查集的结构.我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论. Kruskal算法的过程: (1) 将全部边按照权值由小到大 ...
- Ubuntu16.04修改IP
首先用root用户登陆,然后输入你root的密码.如下图: 然后编辑interfaces文件,该文件位于/etc/network/下,执行如下命令: vim /etc/network/interf ...
- iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
1.JSON (基本上移动开发的主要数据传输都是JSON) 1.1.JSON特点: a.[] 表示数组 b.{} 表示字典 - 对象模型建立关系 c.应用非常多,基本上移动开发的主要数据传输都是JSO ...
- matlab的二维卷积操作(转)
MATLAB的conv2函数实现步骤(conv2(A,B)): 其中,矩阵A和B的尺寸分别为ma*na即mb*nb ① 对矩阵A补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都 ...