mysql遇到的问题总结(一)

原创 2018年04月15日 21:50:25

  

前言

  最近使用finereport做报表,涉及到好多sql的处理,下面是用到的sql的总结,sql有好多东西都是没用过的。

sql总结

1.
  if

表达式:IF( expr1 , expr2 , expr3 )

expr1条件,条件为true,则值是expr2 ,false,值就是expr3

示例:

if(len(buyer)==0,"","and od.BUYER_CUSTOMER_NAME ='"+buyer+"'")

2.

  case when

  case 列名

  when 条件 then 结果

  else 其它结果

  end 别名

  示例:

CASE od.`STATUS`

WHEN '05' THEN

    '已成交'

WHEN '10' THEN

    '已租船'

WHEN '15' THEN

    '已装船'

WHEN '20' THEN

    '已到港'

WHEN '25' THEN

    '已卸货'

WHEN '30' THEN

    '已对账'

WHEN '35' THEN

    '已收款'

WHEN '00' THEN

    '已取消'

END AS "状态"

3.

  ifnull

IFNULL( expr1 , expr2 )

在 expr1 的值不为 NULL的情况下都返回 expr1,否则返回 expr2

  示例:

CONCAT('$',IFNULL((select FORMAT(max(statement.SETTLEMENT_PRICE), 3) from t_order_statement statement where od.ID = statement.ORDER_ID and statement.STATEMENT_TYPE = '2' and statement.alive_flag = '1'),

  (select FORMAT(max(statement.SETTLEMENT_PRICE), 3) from t_order_statement statement where od.ID = statement.ORDER_ID and statement.STATEMENT_TYPE = '1' and statement.alive_flag = '1'))) AS "结算价格",

4.

  concat

  示例:

CONCAT(

        '+/-',

        FORMAT(goods.MORE_LESS, 0),

        '%'

    ) AS "溢短装",
CONCAT(

        transport.DELIVERY_DATE_START,

        '至',

        transport.DELIVERY_DATE_END

    ) AS "装期",

5.

  排名

  片段示例:

select channelName,browseMonth,

CASE

WHEN @coltotal = oriInfo.browseWeek THEN

    @colnum

WHEN @coltotal := oriInfo.browseWeek THEN

    @colnum :=@colnum + 1

WHEN @coltotal = 0 THEN

    @colnum :=@colnum + 1

END AS monthOrder

from 

(SELECT @colnum := 0 ,@coltotal := NULL)t,

6.

  本月第一天,最后一天
  函数:

select curdate();                       --获取当前日期
select last_day(curdate());                    --获取当月最后一天。
select DATE_ADD(curdate(),interval -day(curdate())+1 day);   --获取本月第一天
select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天
select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual;--获取当前月的天数 

  示例:

select ct.total as "企业总数",cd.day as "企业当天",cm.mon as "企业当月" from
(SELECT COUNT(DISTINCT e.member_id) AS total FROM `enterprises` e WHERE create_time > '2017-01-01' AND create_time < '2020-03-31' 
AND EXISTS (SELECT * FROM members m WHERE m.id = member_id AND m.`del_flg` = FALSE AND m.locked = FALSE)
AND EXISTS (SELECT * FROM `member_credentials` c WHERE c.`member_id`= e.member_id AND c.`credentials_code`='99' AND c.`audit`)) ct,
(SELECT COUNT(*) as day FROM `enterprises` WHERE create_time = curdate()) cd,
(SELECT COUNT(*) as mon  FROM `enterprises` WHERE create_time >= 
DATE_ADD(curdate(),interval -day(curdate())+1 day) and create_time <= 
last_day(curdate())) cm;

小结

  sql中的函数是比较有意思的,学以致用,不断总结!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boniesunshine/article/details/79953855

障碍用户类型及他们可能遇到的问题 -- 刘彪

-
  • 1970年01月01日 08:00

小白安装数据库遇到的问题(error Nr.2003)总结

2017-05-13 在学习了一段时间的基础知识之后,打算系统的认识一下前端页面和后台数据等的连接细节,从登陆注册页面开始。    首先,第一步做了简单的登录注册页面    然后,第二步就面临着数据库...
  • m0_38099478
  • m0_38099478
  • 2017-05-14 15:15:31
  • 549

面试遇到的问题总结(一)

因为2017年就要回学校开始找工作了,必然免不了遇到各种面试问题,我先开个专栏记录一下,就目前而言遇到的一些问题吧。案例一: 背景,一家学校附近的小公司,因为头脑发热想去校外做点实习,于是去面试了这...
  • sinat_25127047
  • sinat_25127047
  • 2017-02-08 11:41:54
  • 913

2012年末工作中遇到的问题总结及感悟

新知识总结: 1:单点登录 验证系统;系统1; 系统2; 系统3;单独项目提供服务的思想 + cookie + filter;服务端能够处理客户端coolie 2:SOAP:简单对象访...
  • u013700340
  • u013700340
  • 2014-03-30 19:36:24
  • 1225

【Linux--工作记录】工作中遇到的问题总结--更新中

1、安装rmp包时出现错误 :header V3 DSA signature: nokey ,key id .....     解决办法:rmp -ivh **** .rmp  --force --n...
  • a872728984
  • a872728984
  • 2015-04-02 09:27:30
  • 208

mysql遇到的问题总结

做表单提交时,一旦输入中文就看到控制台报出如下错误:Java.sql.SQLException: Incorrect string value 跟踪调试排除了struts的问题,发现是MySQL无法插...
  • u014805893
  • u014805893
  • 2016-09-08 19:56:03
  • 200

java遇到的问题总结

编译错误 解决方式: http://blog.csdn.net/qq_27093465/article/details/52795186在IDEA中产生不能找到xml文件的方式解决方式一 在...
  • buzhbuzh
  • buzhbuzh
  • 2017-08-16 07:14:33
  • 173

制作交叉编译器时遇到的错误及解决

  • 2012年12月21日 14:42
  • 61KB
  • 下载

hadoop集群搭建过程中所遇问题总结

在搭建过程中遇到了些问题,个人认为不是很典型。
  • u014683164
  • u014683164
  • 2014-08-13 15:12:18
  • 517
收藏助手
不良信息举报
您举报文章:mysql遇到的问题总结(一)
举报原因:
原因补充:

(最多只允许输入30个字)