zoukankan      html  css  js  c++  java
  • mysql中难以理解的sql

    工作中遇到这样的例子, CASE type WHEN 1 THEN '普通红包' WHEN 2 THEN '普通礼包加油卡' WHEN 3 THEN '优 惠码兑换加油卡' WHEN 4 THEN '优惠码兑换红包'  ELSE '邀请返加油卡' END
    之后每次看到它,都感觉特别的高大上,于是从网上进行查找,终于了解它了,并且根据它进行了延伸,得到其他的几个难懂的SQL,在此以做备注。
     
     

    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


    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'

    NULLIF(expr1,expr2)
    如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。

    转载自:http://blog.knowsky.com/240220.htm

  • 相关阅读:
    哈夫曼树及哈夫曼编码
    01背包问题
    Java IO
    Java对象的复制三种方式
    TCP三次握手和四次挥手
    轻量级Java Web框架的实现原理
    Java并发
    消息队列
    赋值、浅拷贝、深拷贝
    Python文件操作(txtxlsxcsv)及os操作
  • 原文地址:https://www.cnblogs.com/peijie-tech/p/4935111.html
Copyright © 2011-2022 走看看