- 浏览: 1336379 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (471)
- 原创文章 (4)
- Database (84)
- J2SE (63)
- Web (26)
- Javascript (30)
- Lucene (11)
- os (13)
- 算法 (8)
- Webservice (1)
- Open projects (18)
- Hibernate (18)
- Spring (15)
- Css (2)
- J2ee (2)
- 综合技术 (18)
- 安全管理 (13)
- PatternsInJava (27)
- NIO (5)
- Ibatis (2)
- 书籍收藏 (1)
- quartz (7)
- 并发编程 (15)
- oracle问题 (2)
- ios (60)
- coco2d-iphone (3)
- C++ (6)
- Zookeeper (2)
- golang (4)
- animation (2)
- android (1)
最新评论
-
dandingge123:
【引用】限制UITextField输入长度的方法 -
qja:
...
对List顺序,逆序,随机排列实例代码 -
安静听歌:
现在在搞这个,,,,,哎~头都大了,,,又freemarker ...
通用大型网站页面静态化解决方案(一) -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Quartz 配置参考 -
马清天:
[b][/b][list][*]引用[u][/u][/list ...
通用大型网站页面静态化解决方案(一)
sql语句判断方法之一 例子: 首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下: SELECT <myColumnSpec> = USE pubs SELECT 'Number of Titles', Count(*) USE pubscase when then else
SQL语句
Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE
sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case
搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE
'其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询
出这三条记录并按以下条件显示出来(并写出您的思路):
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显
示格式:
语文 数学 英语
及格 优秀 不及格
------------------------------------------
select
(case
when 语文>=80 then '优秀'
when 语文>=60 then '及格'
else '不及格') as
语文,
(case when 数学>=80 then '优秀'
when 数学>=60 then '及格'
else
'不及格') as 数学,
(case when 英语>=80 then '优秀'
when 英语>=60 then
'及格'
else '不及格') as 英语,
from table
CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在
WHERE 子句中使用 CASE。
CASE
WHEN
<A> THEN <somethingA>
WHEN <B> THEN
<somethingB>
ELSE <somethingE>
END
在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10
THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN
'Average'
ELSE 'Gift to impress relatives'
END
FROM titles
ORDER BY price
GO
这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN
'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift
to impress relatives'
END
GO
你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10
THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN
'Average'
ELSE 'Gift to impress relatives'
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN
'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift
to impress relatives'
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN
'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift
to impress relatives'
END,
Title
GO
注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE
块。
发表评论
-
mysql主从热备配置(含innodb)终极版
2012-12-25 13:10 2659转自 http://blogread.cn/it/articl ... -
sqlite3中的数据类型
2012-12-10 21:37 1351(转)http://www.cnblogs.com/kfqco ... -
Mac下MySql卸载方法
2012-09-10 23:57 1064Mac下MySql卸载方法 mac下mysql的D ... -
mac os x mysql数据库utf8配置
2012-09-10 23:29 2292进入mysql console: 输入 mysql& ... -
ON DUPLICATE KEY UPDATE
2012-08-07 01:47 1101(转自)http://blog.csdn.net/kesaih ... -
MySQL单列索引和组合索引的区别介绍
2012-08-07 01:31 1113(转自)http://blog.cs ... -
centos下MySQL主从同步配置
2012-08-03 13:14 1566(转自)http://apps.hi.baidu.com ... -
sql语句中left join、inner join中的on与where的区别
2012-06-13 13:24 1267table a(id, type): id t ... -
分组取前N记录
2012-05-31 16:24 1134(转)http://blog.csdn.net/ac ... -
如何一条sql语句取出分组数据中值最大的
2012-05-30 23:59 2376--按某一字段分组取最大(小)值所在行的数据(2007-10- ... -
存储过程与函数的区别
2011-09-28 19:35 1169... -
RMAN备份方案
2011-07-21 10:29 2067RMAN备份方案 RMAN也可以进行联机备份,而且备份与恢 ... -
oracle
2011-04-06 17:46 1055学习笔记 -
PLSQL Developer + Oracle客户端简易安装方法
2011-03-17 00:10 14395Oracle 10g绿色客户端 pl ... -
SELECT INTO FROM与INSERT INTO SELECT
2011-01-26 15:52 34161.INSERT INTO SELECT语句 ... -
浅谈unique列上插入重复值的MySQL解决方案
2011-01-25 11:33 1785本文的unique列上插入重复值解决方案,主要基于MySQL平 ... -
:Oracle 中对Merge语句的增强 和去重复新增
2011-01-25 11:11 2332在Oracle 10g之前,merge语句支持匹配更新和不匹配 ... -
单行函数(仅对单个表达式或一行进行处理)
2011-01-23 18:49 1281例如:select sum(qty) from sales ... -
oracle中的事务控制命令
2011-01-23 18:45 2128事务提交有显示提交:使用commit命令来提交所有未提交的更新 ... -
oracle全文检索
2011-01-23 18:18 61651.全文检索和普通检索的区别 不使用Oracle text功 ...
相关推荐
### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...
SUM(CASE WHEN condition THEN value ELSE 0 END) AS total FROM table; ``` 其中: - `condition` 是一个布尔表达式,如果为真,则执行 `THEN` 子句。 - `value` 是当 `WHEN` 条件为真时返回的值,通常是一个...
CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: ```sql CASE WHEN 条件 THEN 结果 ...
### MySQL中的Case When语句详解 ...此外,`CASE WHEN`还可以与其他SQL语句结合使用,比如聚合函数、子查询等,以满足更复杂的业务需求。希望本文能帮助你更好地理解和使用MySQL中的`CASE WHEN`语句。
在SQL语言中,`CASE WHEN THEN ELSE END`结构是一种强大的条件判断工具,它允许你在查询中根据特定条件执行不同的逻辑。这个结构可以在`SELECT`、`WHERE`、`HAVING`、`UPDATE`和`INSERT`等语句中使用,以实现复杂的...
WHERE salary > (CASE WHEN AVG(salary) IS NOT NULL THEN AVG(salary) ELSE 0 END); ``` 在这个例子中,`CASE WHEN`语句检查平均薪资是否为`NULL`,如果不是,则使用平均薪资作为比较值;如果是`NULL`,则使用0。 ...
本文将对SQL语句简单面试题进行详细的知识点总结,包括Group By语句、Case When语句、日期判断语句等多个知识点。 1. Group By语句: 在第一道面试题中,需要使用Group By语句对表中的数据进行分组统计。Group By...
CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END AS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY...
在SQL语言中,可以使用Update表名Set字段名=case字段名when值1then值2else值三endFrom表名Where条件语句来实现条件语句的写法。 四、取余函数Mod() 在PB脚本中,可以使用Mod(要取余数的值,取余值)函数来实现取余数...
这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `CASE WHEN` 是SQL中的一个条件表达式,允许我们根据不同的条件返回不同的结果值。基本语法结构如下: ```sql CASE WHEN 条件1 ...
THEN CASE WHEN salary > 1000 THEN 1 ELSE 0 END ELSE 1 END = 1 ) ``` #### 四、注意事项 - `Case`语句的条件分支必须是互斥的,即每个输入值只能匹配一个条件。 - 如果所有`WHEN`子句都不匹配,则返回`...
在SQL中,`CASE WHEN THEN` 语句用于条件判断,它可以用来转换或过滤数据,尤其是在聚合函数中,如 `COUNT()`, `SUM()`, `AVG()` 等。这个表达式允许我们在一个查询中根据不同的条件执行不同的操作。 在标题提到的...
`CASE` 关键字在 Transact-SQL 中提供了强大的条件逻辑处理能力,适用于各种 SQL 语句和子句。通过对 CASE 简单表达式和 CASE 搜索表达式的理解与应用,开发人员能够更加灵活高效地构建 SQL 查询,实现复杂业务逻辑...
--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中... when job_level = ’1’ then e_wage*1.08
CASE WHEN (statement_end_offset - statement_start_offset) / 2 <= 0 THEN 64000 ELSE (statement_end_offset - statement_start_offset) / 2 END) AS sql_statement FROM sys.dm_exec_query_stats AS qs CROSS...
### SQL语句大全详解 #### 一、概述 SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。本文档提供了一套全面的SQL语句及其用法,适用于MySQL、Oracle和SQL Server等主流数据库系统。这些SQL...
SUM(CASE WHEN u.sex <> 1 AND u.sex <> 2 THEN 1 ELSE 0 END) AS 未知性别总数 FROM users u; ``` 这里,我们使用了 SUM 函数来累加 CASE 语句返回的值。当 `sex` 的值为 1 或 2 时,CASE 语句返回 1,否则返回 0...
select rq, sum(case when shengfu='胜' then 1 else 0 end) '胜', sum(case when shengfu='负' then 1 else 0 end) '负' from #tmp group by rq ``` 2. 使用子查询和 inner join 实现: ``` select N.rq, N....
Case 语句是 SQL 中一种强大的语句,用于根据不同的条件执行不同的操作。它可以用来实现复杂的逻辑操作,并且可以与其他 SQL 语句结合使用以实现更加复杂的查询。 SQL 中 Case 语句有两种格式:简单 Case 函数和 ...