select函数

ORACLE 内置函数之GREATEST和LEAST

守給你的承諾、 提交于 2020-01-22 22:51:12
Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESCE / GREATEST / LEAST. 1. COALESCE 返回该表达式列表的第一个非空value。 格式: COALESCE( value1, value2, value3, … ) 含义: 返回value列表第一个非空的值。 value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。 EXAMPLE: select coalesce (1, null, 2 ) from dual ; — 返回1 select coalesce ( null, 2, 1 ) from dual ; — 返回2 select coalesce (t.empno, t.mgr ) from scott.emp t ; — 效果类似 NVL( t.empno, t.mgr ) 2. GREATEST 返回值列表中最大值 格式: GREATEST( value1, value2, value3, … ) 含义: 返回value列表最大的值。 value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。 当value值列表中有一个为NULL,则返回NULL值。

Oracle中case when函数和decode函数

假如想象 提交于 2020-01-22 05:07:09
1、case when函数: select ename,case deptno when 10 then 'ACCOUNTING' when 20 then 'RESEARCH' else 'SALES' end from emp; select ename,case when deptno=10 then 'ACCOUNTING' when deptno=20 then 'RESEARCH' else 'SALES' end from emp; 以上两种写法均可。 2、decode函数: select ename,decode(deptno,10,'ACCOUNTING',20,'RESEARCH',30,'SALES','OTHERS') from emp; 来源: CSDN 作者: nishuai519119 链接: https://blog.csdn.net/nishuai519119/article/details/85001926

MySql存储过程总结

笑着哭i 提交于 2020-01-21 00:07:20
之前总是在MSSQL上写存储过程,没有在MYSQL上写过,也基本没有用过,今天需要用到MYSQL,研究了下,把项目的需要的存储过程写了一部分,写一下工作总结。这里没有给出数据库结构,不讨论SQL语句的细节,主要探讨存储过程语法,适合有基础的人。 发表地址: http://www.cnblogs.com/zxlovenet/p/3783136.html #查询文章回复 -- ---------------------------- -- Procedure structure for `sp_select_reply_article` -- ---------------------------- DROP PROCEDURE IF EXISTS `sp_select_reply_article`; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_select_reply_article`(IN `ra_id` int,IN `pagefrom` int,IN `pagesize` int) BEGIN #Routine body goes here... SET @ra_id = ra_id; SET @pagefrom = pagefrom; SET @pagesize = pagesize; SET

MYSQL之视图、触发器、事务

北城余情 提交于 2020-01-20 22:18:51
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | |

MySQL存储过程详解 mysql 存储过程

旧时模样 提交于 2020-01-20 05:39:49
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译,然后执行,而存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1). 存储过程增强了 SQL 语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2). 存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3). 存储过程能实现较快的执行速度。如果某一操作包含大量的 Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化

MySQL存储过程详解(转)

荒凉一梦 提交于 2020-01-20 01:21:10
1. 存储过程简介 我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译,然后执行,而存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1). 存储过程增强了 SQL 语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2). 存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3). 存储过程能实现较快的执行速度。如果某一操作包含大量的 Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划

判断字段的值是否为空

限于喜欢 提交于 2020-01-19 23:30:30
在Java中,如果判断一个字符串是否为空,可以使用 apache StringUtils类中的public static boolean isBlank(String str) 判断,简单明了。但是,在MySQL中却没有这样的工具,这里提供一个判断某字段的值是否为空的方法。首先介绍两个函数: isnull (exper) 判断exper是否为空,是则返回1;否则,返回0 length (exper) 返回字符串exper所占的字节数(受编码影响)。如果为空,返回0 下面提供给两个示例: SELECT ISNULL(null); -- 1 SELECT LENGTH(trim(' ')); -- 0 结合这两个函数,我们就可以轻而易举的判断一个字段的值是否为空: -- 判断是否为空的方法 SELECT CASE WHEN (ISNULL(exper)=1) || (LENGTH(trim(exper))=0) THEN '为空' ELSE '非空' END as result 来源: https://www.cnblogs.com/east7/p/12215871.html

Hive分析窗口函数

谁说我不能喝 提交于 2020-01-19 15:31:17
Hive中提供了越来越多的分析函数,用于完成负责的统计分析。 今天简单整理一下,以务以后自己快速查询,也给看到的朋友作个参考。 分析函数主要用于实现分组内所有和连续累积的统计。 一. AVG,MIN,MAX,和SUM 如果不指定ROWS BETWEEN,默认为从起点到当前行; 如果不指定ORDER BY,则将分组内所有值累加; 关键是理解ROWS BETWEEN含义,也叫做WINDOW子句: PRECEDING:往前 FOLLOWING:往后 CURRENT ROW:当前行 UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING:表示到后面的终点 二. NTILE,ROW_NUMBER,RANK,DENSE_RANK 1) NTILE NTILE(n),用于将分组数据按照顺序切分成n片,返回当前切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid ORDER BY createtime ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) 如果切片不均匀,默认增加第一个切片的分布 2)ROW_NUMBER ROW_NUMBER() –从1开始,按照顺序,生成分组内记录的序列,比如,按照pv降序排列

MySQL中的常用函数

為{幸葍}努か 提交于 2020-01-19 14:28:21
1.字符串函数 length(a) 获得字符串a的长度 concat(a,b,c) 将多个值拼接成一个字符串 trim(a) 去掉字符串a首尾的空格 replace(a,b,c) 将字符串a中出现的b字符串替换成c subString(str,index,len) 从第index个字符开始截取字符串str,最多取len个 reverse(a) 反转字符串a locate(a,b) 查询子字符串a在字符串b中出现的位置,从1开始 2.数学函数 abs(a) 取a的绝对值 sqrt(a) 取a的平方根 mod(a,b) 取a%b 计算a整除b之后的余数 ceiling(a); 向上取整,取得大于等于a的最小整数 floor(a); 向下取整,取得小于等于a的最大整数 round(a,b); 四舍五入对a保留b位小数 truncate(a,b); 对数值a保留b位小数,直接去掉多余的尾数 sign(a) 返回1 0 -1表示a是正数 0 或者负数 power(a,b) 返回a的b次方[次幂] rand() 返回0~1之间的一个随机数 floor(rand()*100) 获得0~100之间的随机数 3.日期时间函数 addDate(d,days) 在当前日期上加days天 addDate(d,interval num unit) 在当前日期上加days天 unit 可以是day month

sqli-labs-master( POST : 11-20)

北城余情 提交于 2020-01-18 20:46:56
人过留名,雁过留声 人生天地间,凡有大动静处 必有猪头 前言 sqli-labs 1-10 关是 GET 方法注入,11-20 关是 POST 方法注入。思路有相似之处,最大的区别在于参数提交的方式不一样。 环境准备 Phpstudy 集成工具 Sublime 代码编辑器 Firefox 浏览器 Hackbar 插件(或 Burpsuite) Headers Modify 插件 Less 11 ① 源码分析 post方法提交参数 两处单引号引用参数拼接 sql 语句 查询输出 ② 漏洞利用 Hackbar 提交 POST 参数 闭合单引号,在任何一处参数构造 sql 语句注入 1. 提交参数 按 f12 键打开开发者工具,选中 POST 提交的条目可以看到提交的数据。( 知道怎么样提交,好方便接下来自己构造 POST 参数) 2. order by 查询列数 2.1 猜测列数为 2 ,不报错 POST 参数: uname = 1 ' order by 2 #&passwd=123 2.2 猜测列数为 3 ,报错。说明当前使用的数据表列数为 2 列。 POST 参数: uname = 1 ' order by 3 #&passwd=123 3. UNION 注入 3.1 注入数字,查看回显位 POST 参数: uname = 1 ' union select 1 , 2 #