MySQL中case when的基本用法总结】的更多相关文章

MySQL中case when的基本用法总结原创Backcanhave7 最后发布于2018-12-06 15:14:15 阅读数 439 收藏展开MySQL中的case when有用两种用法,官方文档中的说明如下: 用法一: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list]END CASE用法二: CASE WHE…
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: 1. isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0. mysql); mysql); 使用= 的null 值对比通常是错误的. isnull() 函数同 is null比较操作符具有一些相同的特性.请参见有关is null 的说明. 2. IFNULL(expr1,ex…
MySQL 中now()时间戳用法 UPDATE news set addtime = unix_timestamp(now()); #结果:1452001082  …
mysql 中合并查询结果union用法 or.in与union all 的查询效率 (2016-05-09 11:18:23) 转载▼ 标签: mysql union or in 分类: mysql 问题一 mysql 中合并查询结果union用法 今天来写写union的用法及一些需要注意的. union:联合的意思,即把两次或多次查询结果合并起来. 要求:两次查询的列数必须一致 推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一样 可以来自多张表的数据:多次sql语句取出的列名可…
SELECT a.hsid, a.house_code, a.sale_date, a.pjid, COUNT( sdid ) AS num, b.hsid, b.pscid, b.hscode, b.hsarea1, b.hsrealarea1, b.hsusage, b.hsprice, b.hsstatus,sum(CASE WHEN b.hsrealarea1 >0THEN b.hsrealarea1ELSE b.hsarea1END)  as c , c.xzarea, c.lpmc,…
语法说明: 方式一: CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END  方式二: CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 使用演示样例: mysql> select id,name, (gender) as '性…
1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的默认存储引擎,InnoDB有两种索引:B+树索引和哈希索引,其中哈希索引是自适应性的,存储引擎会根据表的使用情况,自动创建哈希索引,不能人为的干涉. B树.B-树.B+树.B*树四种数据结构在索引中的运用,这四种数据结构的顺序必须是这样的.分别阐述如下: B树:二叉树,每个结点只存储一个关键字,等于…
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ | |…
一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+--------+| id | name   |+----+--------+|  1 | BioCyc |+----+--------+1.语法及使用特点:CONCAT(str1,str2,…)                       返回结果为连接参数产生的字符串.如有任何一个参数为NULL…
-- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循环体; end while; */ -- 实例: create procedure sum1(a int) begin ; -- default 是指定该变量的默认值 ; while i<=a DO -- 循环开始 set sum=sum+i; ; end while; -- 循环结束 select…
浅析MySQL中change与modify的区别   MySQL版本 show variables like 'version'; 表结构 desc student; 修改表 例如:修改表student的name字段,将varchar(10)修改为varchar(20)modifyalter table student modify name varchar(20); changealter table student change name name varchar(20); 修改列名 修改列…
解释: SELECT                case                   -------------如果    when sex='1' then '男' -------------sex='1',则返回值'男'    when sex='2' then '女' -------------sex='2',则返回值'女'      else 0                 -------------其他的返回'其他’    end                   …
条件语句 delimiter \\CREATE PROCEDURE proc_if ()BEGIN      declare i int default 0;   if i = 1 THEN       SELECT 1;   ELSEIF i = 2 THEN       SELECT 2;   ELSE       SELECT 7;   END IF; END\\delimiter ; 循环语句 while循环 delimiter \\CREATE PROCEDURE proc_while…
参见这篇博客:https://blog.csdn.net/rongtaoup/article/details/82183743 case when then else end 语句用于查询满足多种条件的情况,类似java中的if...else,还有的就是用于进行行转列的查询,这个是放在select 子句后面的,是充当的是字段的作用. 具体用法就是:分为两种,一种是简单的函数形式,另一种就是表达式的形式. 其含义解释: 简单的函数形式 case 字段 when 值 then 结果 else 其他情…
如上所述,使用case的子句将作为一个字段,方便起见,可以用别名表示.其中,when是case的条件,值为then的表达式值.   参考: http://www.owe-love.com/myspace/?action=show&id=188…
1.查询图书价格,若价格为null,则显示unknown,若价格为10到20, 则显示10 to 20 SELECT price, CASE WHEN price='null' THEN 'UnKnow' WHEN price>10 and price<20 then '10 to 20' END FROM book; 2. select name, case when birthday<'1981' then 'old' when birthday>'1988' then 'yo…
Case具有两种格式,简单Case函数和Case搜索函数.这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 简单Case函数 CASE sex          WHEN '1' THEN '男'           WHEN '2' THEN '女'  ELSE '其他' END Case搜索函数 CASE WHEN sex = '1' THEN '男'           WHEN sex = '2' THEN…
· IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3.IF()的返回值为数字值或字符串值,具体情况视其所在语境而定. mysql> SELECT IF(1>2,2,3); -> 3 mysql> SELECT IF(1<2,'yes ','no'); -> 'yes' mysql> SELEC…
SQL如下: SELECT DISTINCTsy_haken_type,sy_sagyo_type,sy_kokyaku_cdFROm tbl_syukeiWHERE (sy_sagyo_ymd between '2010-01-01' AND '2012-12-30')AND (sy_staff_cd <> '' AND sy_staff_cd is not null) AND (sy_kokyaku_cd <> '' AND sy_kokyaku_cd is not null)…
一.在mysql操作中我们经常需要对数据进行类型转换.此时我们应该使用的是cast()或convert(). 二.两者的对比 相同点:都是进行数据类型转换,实现的功能基本等同 不同点:两者的语法不同,cast(value as type) . convert(value,type) 三.所支持的类型如下: 二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() 日期 : DATE 时间: TIME 日期时间型 : DATETIME 浮点数 : DECIMAL 整…
最近遇到一个问题: year amount num 1991 1 1.1 1991 2 1.2 1991 3 1.3 1992 1 2.1 1992 2 2.2 1992 3 3.3 把上面表格的数据查询成: year m1 m2 m3 1991 1.1 1.2 1.3 1992 2.1 2.2 2.3 看到这样的需求,首先想到的是用case去统计以及 用group by来分组 第一版sql代码: SELECT `year`, ( THEN num END) AS n1, ( THEN num…
procedure P_GetProVerSingInfo_2018(varFileID in varchar2, p_cr1 out refcontent, p_cr2 out refcontent, p_cr3 out refcontent) as begin open p_cr1 for select * from ly_familyinformation where file_id = varFileID ' order by case when relation = '购房人/申请人'…
WHERE IN 用法 这里分两种情况来介绍 1.in 后面是记录集,如: select  *  from  table  where   uname  in(select  uname  from  user); 2.in 后面是字符串,如: select  *  from  table  where   uname  in('aaa',bbb','ccc','ddd','eee',ffff''); 注意:这里一定要将字符串用单引号'' 标注起来: 3.in 后面是数组,用如下方法,请参考:…
1.使用group by对数据进行分组:select 字段名... from tablename group by 字段名...:可以把分组.排序.统计等等都结合在一起使用,实际应用中也多是这样的: 2.使用group_concat()实现显示每个分组中的字段: 3.如果要在分组查询中加入条件,则必须使用having而不是where: 4.如果使用条件分组的同时还要排序,则order by必须位于having后边:…
图一: 图二:…
IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. IF(SUM(`ns_product_finished_in_wh`.`InCount`),SUM(`ns_product_finished_in_wh`.`InCount`),0) AS ALLINQTY 当IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1<>0且expr…
sql中的case when 有点类似于Java中的switch语句,比较灵活,但是在Mysql中对于Null的处理有点特殊 Mysql中case when语法: 语法1: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE 语法2: CASE WHEN search_condition THEN s…
在做教务系统的时候,一个学生(alumni_info)有多个教育经历(alumni_education),使用的数据库是mysql,之前使用左链接查询的,发现数据量才只有几万条时,查询就很慢了,早上想到用子查询in,感觉效率还不是很高,结果想到用exists,效率高了很多.由于是第一次在mysql中使用exists,百度了一番,现将自己的总结如下: 1.exists的返回结果是bool型,只有true或者false 如 SELECT * FROM alumni_info t WHERE EXIS…
在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar(20) ) create table b ( b_id int, b_name varchar(20) ) 那么 select * from a where a_name in (select b_name from b) 这条SQL语句的意义很明显是选取满足where条件下 a 中的所有列的数据…
在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar(20) ) create table b ( b_id int, b_name varchar(20) ) 那么 select * from a where a_name in (select b_name from b) 这条SQL语句的意义很明显是选取满足where条件下 a 中的所有列的数据…