2021-02-06

数据库常见SQL函数,语法总结

在这里插入代码片


desc 库名.表名【可查看字段解释】   可下载【数据量大可用CVS格式;数据量小可下载excel格式;CVS格式中文会显示乱码,需转化成excel格式】;
CVS乱码转化excel 【Hive 下载CSV  表格拖进Text 选择(File)——(Save with Encoding)——(UTF-8 with BOM) 即可 ;
代码中:中文必须加``;
每张表都需要加上【 where(表缩写. 或什么都不写)pt=regexp_replace(date_add(CURRENT_TIMESTAMP,-1),'-','') 】;
1select distinct  (字段)
    from (表名)
    查询字段
2desc '表名'  
   (查询具体字段)
3、【 row_number()over(partition by 列名 order by 列名)as  rank(排序)
       order by [XX] desc  降序
       order by  [XX] asc  升序
       若没有descasc 则默认升序
    例、row_number()over(partition by tod.student_id,tod.scheduled_sales_id order by tod.scheduled_date_time asc) as rank
    释、根据 tod.scheduled_date_time 对tod.student_id,tod.scheduled_sales_id 进行升序排序
    order by 对所取字段进行排序
4、substring(book_date_time,1,10) 
   释:1为从第几位数取;10为取几位数
5MAX(ldh.assign_time) AS 最近分配时间
   date_sub(next_day(current_date(),'MO'),14)--上周一
   date_sub(next_day(current_date(),'MO'),7)--这周一
   t_month=substring(FROM_UNIXTIME(UNIX_TIMESTAMP()),1,7)--当前月份

6、 可直接用的时间公式:
    select date_sub(next_day(current_date(),'MO'),14) --上周一
    select date_sub(next_day(current_date(),'MO'),7) --这周一
    select FROM_UNIXTIME(UNIX_TIMESTAMP()) --当前时间
    select substring(FROM_UNIXTIME(UNIX_TIMESTAMP()),1,7) --当前月份 
    select trunc(current_timestamp(),'MM') --目前所属月月初
    select trunc(date_add(CURRENT_TIMESTAMP,-1),'MM') --昨天所属月月初
    select trunc(add_months('2016-11-02',-1),'MM') --上月月初
    ,datediff(s.paid_date, k.trial_date) as time_difference   -- 计算两个时间差值
    ,select explode(split(字段, ','))t-- t临时表名一行变多行 
    ,lateral view explode (split(字段, ',')) a2 as split_content_id-- 临时建立表a2,将content_id一行分多行
    select from_unixtime(unix_timestamp(),'yyyy-MM-dd 00:00:00')-- 今天00:00:00
    select from_unixtime(cast(cast(class_time as double)/1000 as bigint),'yyyy-MM-dd HH:mm:ss')-- 字符串13位更改
    IF(pay_time=DATE_FORMAT(now(),'%Y-%m-%d')

7、常见字符串整理
   select COALESCE(user_id,out_order_id) -- 如果user_id为null,则用out_order_id来进行填补
     --如果expression不为空值则返回expression;
     --否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,

   select SELECT CAST("2017-08-29" AS DATE)   -- -> 2017-08-29  转换数据类型

   select IF(expr,v1,v2)  
   --SELECT IF(1 > 0,'正确','错误')    ->正确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值