mysql3

coalesce---一个很有用的函数,作用是将返回传入的参数中第一个非null的值,比如
   SELECT COALESCE(NULL, NULL, 1);
-- Return 1

SELECT COALESCE(NULL, NULL);
-- Return NULL

mysql加减乘除
SELECT e.empno,e.ENAME,e.DEPTNO,e.SAL*case when eb.TYPE=1 THEN .1
WHEN eb.type=2 THEN .2
ELSE .3 end as bonus from emp e,emp_bonus eb WHERE e.EMPNO=eb.EMPNO AND
e.DEPTNO=10

IFNULL(expr1,expr2)
假如 expr1 不为 NULL,则 IFNULL() 的返回值为 expr1 ;否则其返回值为 expr2 。IFNIULL() 的返回值是数字或是字符串,具体情况取决于其所使用的语境。

IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL), 则 IF() 的返回值为 expr2;否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
select if(sva=1,"男","女") as ssva from taname where id = '111'

IF search_condition THEN
    statement_list
[ELSEIF search_condition THEN]
    statement_list ...
[ELSE statement_list]
 END IF


DROP PROCEDURE IF EXISTS init_count;
DELIMITER //
    create PROCEDURE init_count()
        begin
            set @count=0;
            while @count<1000 do
                set @count=@count+1;
            END WHILE;
        end;
    //
DELIMITER ;
call init_count();
select @count;
https://blog.csdn.net/yanluandai1985/article/details/89632265


触发器
    语法:create trigger 触发器名 before|after 事件 on 表名 for each row 触发器语句;
        触发器名建议为trigger_xxx,这样便于区分,触发器名不能重复。
        before|after 代表触发器语句执行时间,如果是before,就是在insert delete update操作之前执行触发器语句;after就是之后。
        事件就是insert delete update操作中的一个。
        for each row 是代表任何记录执行对应操作都会触发器。
        触发器语句就是触发器触发时要执行的语句。
        比如:下面是一个当插入新用户时,在用户创建时间表中插入一条新数据,是当前时间。

        create trigger trigger_addUserTime
        before
         insert
        on user_info
        for each row
        insert into usercreatetime(create_time) values(now());


DISTINCT删除重复项
SELECT DEPTNO,sum(DISTINCT SAL) as total,sum(bonus) from(
SELECT e.empno,e.ENAME,e.SAL,e.DEPTNO,e.SAL*case when eb.TYPE=1 THEN .1
WHEN eb.type=2 THEN .2
ELSE .3 end as bonus from emp e,emp_bonus eb WHERE e.EMPNO=eb.EMPNO AND
e.DEPTNO=10
)x
GROUP BY deptno

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值