数据库表: select * from rec order by rst,game_time; ID GAME_TIME      RST ------ -------------- ---- 2 01-1月 -11     F 6 01-1月 -11     F 3 02-1月 -11     F 9 02-1月 -11     F 7 03-1月 -11     F 1 01-1月 -11     W 4 01-1月 -11     W 8 01-1月 -11     W 5 02-1月 -…
CASE 语句可以在SELECT 子句和ORDER BY 子句中使用 CASE语句分为两种Case Simple Expression and Case Search Expression Case Simple Expression: CASE Column1 WHEN V1 THEN R1 WHEN V2 THEN R2 ELSE R3 END Case Search Expression CASE WHEN C1=V1 THEN R1 WHEN C2=V2 THEN R2 ELSE R3…
前言 开发中我们经常会用到行转列,这里记录一下我在项目中实现行转列的思路.需求:报表模块,统计某机房机架的不同状态(1 空闲  2 预占  3 占用)的数量(真实需求更为复杂,这里只是讨论技术,简化一下) decode函数 以下介绍摘自百度百科: DECODE函数是ORACLE PL/SQL的功能强大的函数之一,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名.目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能. 在DECODE的语法中,实际上就是这样…
问: 从数据表中选择一个字段“field”,如果“field”值是1或NULL就赋值为1,其它情况为0,该怎么写啊?这样写对不对啊?(CASE fieldWHEN '1' THEN '1'WHEN NULL THEN '1'ELSE '0' END) AS field 满意回答:  不要使用when null来判断,等于NULL的时候判断不出来的你可以当字段等于NULL时给一个默认值.比如(CASE isnull(field,'')WHEN '1' THEN '1'WHEN '' THEN '1…
自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可运行的操作序列,并返回查询的结果集. SQL的解析引擎包含查询编译与查询优化和查询的执行,主要包含3个步骤: 查询分析: 制定逻辑查询计划(优化相关) 制定物理查询计划(优化相关) 查询分析: 将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搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要…
SELECT a.managecom, a.subtype, count(*) loadsucc, sum(case when a.state in  ('4', '5', '6', '7', '8', '9') then 1 else 0 end) recogsucc, sum(case when a.state in  ('3', '12', '13') then 1 else 0 end) recogfail, sum(case when a.state in  ('1', '2') th…
case具有两种格式.简单case函数和case搜索函数.  1.简单case函数 case sex when ’1’ then ’男’ when ’2’ then ’女’else ’其他’ end 2. case搜索函数 case when sex = ’1’ then ’男’when sex = ’2’ then ’女’else ’其他’ end 这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要注…
大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREATE TABLE USER   (   NAME VARCHAR(20) NOT NULL,---姓名   SEX INTEGER,---性别(1.男   2.女)   BIRTHDAY DATE---生日   );  CREATE TABLE USER(NAME VARCHAR(20) NOT N…