SQL语句

union all

  • union 相当于 or,会对结果进行去重(a或b,ab同时存在的不计)
  • union all 结果不去重。

例如:

select
  device_id,
  gender,
  age,
  gpa
from user_profile
where university='山东大学' union all
select
  device_id,
  gender,
  age,
  gpa
from user_profile
where gender='male';

case函数

  • case是一种多分支的函数,可以根据条件列表的值返回多个可能的结果表达式。
    可用在任何允许使用表达式的地方,但不能单独作为一个语句执行
    分为:
    - 简单case函数
    - 搜索case函数
  • 简单case函数
    从上到下的将测试表达式的值与每个when子句的简单表达式进行比较。
    如果某个简单表达式的值与测试表达式的值相等,则返回第一个与之匹配的when子句所对应的结果表达式的值。
    如果所有简单表达式的值与测试表达式的值都不相等,指定了else子句,则返回else子句中指定的结果表达式的值。若没有指定else子句,则返回null。
case 测试表达式
when 简单表达式1 then 结果表达式1
......
when 简单表达式n then 结果表达式n
else 结果表达式n+1 
end
  • 搜索case函数
    按从上到下的计算每个when子句的布尔表达式。
    返回取值为true的布尔表达式所对应的结果表达式的值。
    如果没有取值为true的布尔表达式,指定了else子句,返回else子句中指定的结果。如果没有指定else子句,则返回null。
case 
when 布尔表达式1 then 结果表达式1
......
when 布尔表达式n then 结果表达式n
else 结果表达式n+1 
end

例如:

select
  case
    when age < 25 or age is null then '25岁以下'
    when age >= 25 then '25岁及以上'
  end age_cut,
  count(*) number
from
  user_profile
group by
  age_cut;

时间函数

括号内的date应为标准日期格式xxxx-xx-xx。

  • day(date)
  • month(date)
  • year(date)

例如:

select
  day(date) as day,
  count(*) as question_cnt
from
  question_practice_detail
where
  month(date) = 8
  and year(date) = 2021
group by
  date;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值