select name from greatestsORDER BY case when name ='B' then 1 when name ='A' then 2 when name ='D' then 3 when name ='C' then 4 else 5 end…
背景:最近用到统计之类的复杂Sql比较多,有种"提笔忘字"的感觉,看书练习,举一反三,巩固加强. (一) <SQL进阶教程>学习记录--CASE (二) <SQL进阶教程>学习记录--GROUP BY.PARTITION BY 1.语法 两种写法:简单 CASE 表达式(simple case expression).搜索 CASE 表达式(searched case expression) -- 简单 CASE 表达式 CASE sex WHEN '1' TH…
写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQL)的时候写到. 第 1 章 DBMS 与 SQL 1.DBMS 是什么 ? 数据库管理系统(Database Management System, DBMS) 是用来管理数据库的计算机系统. 本文采用 PostgreSQL 为 DBMS. 2.为什么要用 DBMS ? 问:为什么不用 文本文件 或…
SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽管使用起来非常便利,但其真正的价值却并不怎么为人所知.很多人不用它,或者用它的简略版函数,例如 DECODE(Oracle).IF (MySQL)等.然而,正如 Joe Celko 所说,CASE表达式也许是 SQL-92 标准里加入的最有用的特性.如果能用好它,那么 SQL 能解决的问题就会更广泛…
select name, case when case when x > y then x else y end < z then z else case when x < y then y else x end end as greasterfrom greatests…
select case when sex = 1 then '男性' else '女性' end as '性别', sum(case when name='哈尔滨' THEN population else 0 end) as '哈尔滨', sum(case when name='大庆' then population else 0 end) as '大庆', sum(case when name='齐齐哈尔' then population else 0 end) as '齐齐哈尔', sum…
SQL 权威指南SQL 解惑在进行非定制化统计时,需要将已有编号方式转换为另外一种便于分析的方式进行统计需求 select case when name='哈尔滨' then '黑龙江' when name='大庆' then '黑龙江' when name='齐齐哈尔' then '黑龙江' when name='长春' then '吉林' when name='吉林' then '吉林' when name='沈阳' then '辽宁' when name='大连' then '辽宁' wh…
1.只加入一个社团的学生的社团id select std_id, max(club_id) from student_clubgroup by std_idhaving count(*) =1------------------------------2.加入多个社团的学生的主社团id select std_id,club_id from student_club where main_club_flag ='Y'-------------------------------------sele…
进行不同条件的统计是case表达式的著名用法之一 select name,sum(case when sex = 1 then population else 0 end) as cnt_m,sum(case when sex = 2 then population else 0 end) as cnt_ffrom city_population_copygroup by name 实现了行转列…
1.对当前工资为30万日元以上的员工,降薪10%:2.对当前工资为25万日元以上且不满28万日元的员工,加薪20% update salaries set salary = case when salary >=300000 then salary*0.9 when salary >=250000 and salary<280000 then salary *1.2 else salary end;…
分组排序 SELECT d1.district, d1. NAME, (SELECT COUNT(d2.price) FROM district_products d2 WHERE d2.price > d1.price and d1.district= d2.district) + 1 AS rank_1 FROM district_products d1 ORDER BY district,rank_1;…
一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3  ELSE defaultreturnvalue END (2)具体使用示例: 假设我们有一个论坛网站,其中有一张User表{ UId,Name,Level },Level是一个int类型,代…
import pandas as pd import sqlite3 conn = sqlite3.connect('1-5.db') 用外连接进行行列转换1(行 -> 列): 制作交叉表 怎么使用outer join,将row转换成column 下面的方式一,使用的是外连接的方法.但是效果却是最差的. # create Course Table and insert data conn.execute(""" CREATE TABLE IF NOT EXISTS Co…
---恢复内容开始--- 用 CHECK 约束定义多个列的条件关系 今天来说下check和case的用法.其实,CASE 表达式和 CHECK 约束是很般配的一对组合.也许有很多数据库工程师不怎么用 CHECK 约束,但是一旦他们了解了 CHECK 约束和 CASE 表达式结合使用之后的强大威力,就一定会跃跃欲试的. 直接说案例来的直接:假设某公司规定“女性员工的工资必须在 20 万日元以下”,而在这个公司的人事表中,这条无理的规定是使用 CHECK 约束来描述的,代码如下所示. CONSTRA…
子查询所做的,是计算出价格比自己高的记录的条数并将其作为自己的位次 -- 自连接实现排序功能SELECT P1.name,P1.price,(SELECT COUNT(P2.price)FROM Products P2WHERE P2.price > P1.price) + 1 AS rank_1FROM Products P1ORDER BY rank_1; SELECT P1.name,P1.price,(SELECT COUNT(DISTINCT P2.price)FROM Product…
-- 从下面这张商品表里找出价格相等的商品的组合 select * from products p1LEFT JOIN products p2on p1.price = p2.price and p1.name > p2.namewhere p2.name is not null…
一:case表达式的用法 1.SQL中的case表达式的作用是用来对"某个变量"进行某种转化,通常在select字句中使用,举个例子: 不能看出,case表达式很像我们的if else的作用,在发现为真的 WHEN 子句时,CASE 表达式的真假值判断就会中止,而剩余的 WHEN 子句会被忽略.case表达式有两种写法: -- 简单CASE 表达式 CASE sex   WHEN '1' THEN '男'   WHEN '2' THEN '女' ELSE '其他' END -- 搜索C…
背景:就自己常用的shell脚本写作风格,总结了一些知识点.也是作为交接工作的一部分文档.部分内容单独写 #!/bin/sh # shell脚本进阶教程 # 1.常用知识点:变量设置/日期设置/格式化输出/定义函数/函数传参/脚步传参/变量的嵌套和迭代 # 2.常用环境:/数据库监控/本地日志监控/批量处理/定期获取表数据/备份 # 3.常用循环:for/while # 4.常用命令:sed/cut/awk/ # 5.crontab 计划任务 # 第一部分:常用知识点 # 1.[变量设置及变量替…
retention policy这个东西相比较于传统的关系型数据库(比如mysql)而言,是一个比较新的东西,在将表之前,有必要来看一下保存策略有什么用,以及可以怎么用 I. 基本操作 1. 创建retention policy retention policy依托于database存在,也就是说保存策略创建时,需要指定具体的数据库,语法如下 CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DUR…
转载: Bash脚本15分钟进阶教程 这里的技术技巧最初是来自谷歌的"Testing on the Toilet" (TOTT).这里是一个修订和扩增版本. 脚本安全 我的所有bash脚本都以下面几句为开场白: #!/bin/bash set -o nounset set -o errexit 这样做会避免两种常见的问题: 引用未定义的变量(缺省值为"") 执行失败的命令被忽略 需要注意的是,有些Linux命令的某些参数可以强制忽略发生的错误,例如"mkd…
在pl/sql的执行过程中发生异常时系统所作的处理称为一个例外情况(exception).通常例外情况的种类有三种: 1.预定义的oracle例外情况oracle预定义的例外情况大约有24个,对于这种例外情况无需在程序中定义,由oracle自动地触发(重点) 2.非预定义的oracle例外情况由使用者增加定义例外情况,然后oracle自动将其触发执行. 3.自定义例外,这个用的较少. 自定义例外的基本语法: exception when <异常情况名> then <异常处理代码>…
Product表 CREATE TABLE Product (product_id CHAR(4) NOT NULL, product_name VARCHAR(100) NOT NULL, product_type VARCHAR(32) NOT NULL, sale_price INTEGER , purchase_price INTEGER , regist_date DATE , PRIMARY KEY (product_id)); 插入数据 -- DML:插 入 数 据 BEGIN T…
由于入门教程的反响还不错,因此Alberl就以直播的形式来写<进阶教程>啦,本教程的前提: 1.请先阅读<仿迅雷播放器教程> 2.要有一定的duilib基础,如果还没,请先阅读<2013 duilib入门简明教程>. 3.下载基于VLC的MFC播放器(包含VLC等所有文件),csdn不允许上传相似的代码,因此后面的教程将不再上传VLC的dll.头文件等没有改变的文件. <仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)>中界面是用MFC做的,因此我们…
SQL指令 SELECT DISTINCT WHERE AND OR IN BETWEEN LIKE ORDER BY 函数 COUNT GROUP BY HAVING ALIAS 表格链接 外部链接 CONCATENATE SUBSTRING TRIM 表格处理 CREATE TABLE CONSTRAINT NOT NULL UNIQUE CHECK 主键 外来键 CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE I…
我认为<SQL基础教程(第2版)>非常适合数据库学习的初学者.论述的角度是读者的角度,会换位思考到读者在看到这一段时候会发出怎样的疑问,非常难得:原始数据的例题只有一道,但是可以反复从不同角度提出不同的问题进行处理,避免了眼花缭乱之感:习题也比较有趣,有的问题反而是属于问题本身其实是个陷阱的,考验初学者. 畅销书<SQL基础教程>第2版,介绍了关系数据库以及用来操作关系数据库的SQL语言的使用方法.书中通过丰富的图示.大量示例程序和详实的操作步骤说明,让读者循序渐进地掌握SQL的基…
这篇文章主要介绍,通过Spring Boot整合Mybatis后如何实现在一个工程中实现多数据源.同时可实现读写分离. 准备工作 环境: windows jdk 8 maven 3.0 IDEA 创建数据库表 在mysql中创建student库并执行下面查询创建student表 -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF E…
原文:WPF进阶教程 - 使用Decorator自定义带三角形的边框 写下来,备忘. Decorator,有装饰器.装饰品的意思,很容易让人联想到设计模式里面的装饰器模式.Decorator类负责包装某个UI元素,用来提供额外的行为.它有一个类型为UIElement的Child属性,其中含有待包装的内容.Decorator可以被用于添加简单的视觉装饰,比如Border边框,或者更为复杂的行为,比如ViewBox.AdornerDecorator.        当我们继承Decorator时,也…
前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持 在开始本文之前,建议先阅读上篇博文: 190813-Influx Sql系列教程八:query数据查询基本篇 0. 数据准备 在开始查询之前,先看一下我们准备的数据,其中name,phone为tag, age,blog,id为field > select * from yhh name: yhh time age blog id name…
前面介绍了使用insert实现新增和修改记录的使用姿势,接下来我们看一下另外一个简单的使用方式,如何删除数据 1. delete 语句 delete的官方语法如下 DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>] delete语句和我们常见sql语法有点像,但是注意一下上面的where中的条件,只允许根据tag和时间来进行删除操作 下面给出几个…
在influxdb中没有专门的修改数据的update语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert来实现,那么怎么判断一条insert语句是插入还是修改呢? 1. insert数据修改 关于insert的使用语法,可以参考上一篇博文:190726-Influx Sql系列教程五:insert 添加数据 这里只是贴一下基本语法 insert into <retention policy> measurement,tagKey=tagValue fieldK…