SQL之常用函数汇总


数值计算函数

select
    round(3.1415926,4), -- 3.1416                       -- round(double a[, int d]) 保留对应精度,默认d=0                                  
    floor(3.1415926), -- 3                              -- 向下取整                                                  
    ceil(3.1415926), -- 4                               -- 向上取整 等价于ceiling                                                                 
    rand(), -- 0.5577432776034763                       -- rand([int seed]) 如果指定种子seed,则会取到一个稳定的随机数序列                                                  
    pow(2,4), -- 16.0                                   -- 幂函数 等价于power                                
    sqrt(16), -- 4.0                                    -- 开根号                                                                    
    abs(-3.9), -- 3.9                                   -- 绝对值                                                                
    pmod(9,4)  -- 1                                     -- 取余函数 

字符串函数

select 
    concat('abc','def','gh'), -- abcdefgh               -- 字符串连接函数
    concat_ws(',','abc','def','gh'), -- abc,def,gh      -- concat_ws(string SEP, string A, string B...) 带连接字符的字符串连接函数
    concat_ws('|',array('a','b','c')), -- a|b|c         -- 数组转换成字符串
    format_number(5.23456,3), -- 5.235                  -- format_number(number x, int d) 小数位格式化成字符串函数 等价于substring
    substr('abcde',3,2), -- cd                          -- substr(string A, int start[, int len]) 默认len为截取到最后
    instr('abcdf','df'), -- 4                           -- 字符串查找函数,返回字符串首次出现的位置 
    locate('a','abcda',2), -- 5                         -- locate(string substr, string str[, int pos]) 返回字符串从pos后查找首次出现的位置 
    length('abc'), -- 3                                 -- 字符串长度
    str_to_map('k1=v1,k2=v2',',','='), -- {"k2":"v2","k1":"v1"}
                                                        -- str_to_map(text[, delimiter1, delimiter2]) 按照给定的分隔符转换成map结构
    upper('abSEd'), --  ABSED                           -- 转大写
    lower('abSEd'), --  absed                           -- 转小写
    trim(' abc '), -- abc                               -- 去空格,ltrim/rtrim 为 左边/右边去空格
    regexp_replace('foobar', 'oo|ar', ''), -- fb        -- 正则表达式替换函数
    get_json_object(
        '{"device_info":{"device_id":"03E7A750","brand":"苹果"},"age":28}',
        '$.device_info'
        ),                                              -- 解析json返回path指定的内容 获取device_info的值
    get_json_object(
        '{"device_info":{"device_id":"03E7A750","brand":"苹果"},"age":28}',
        '$.device_info.device_id'
        ),                                              -- 解析json返回path指定的内容 获取device_info中device_id的值
    split('ab,cd,ef',','), -- ["ab","cd","ef"]          -- split(string str, string pat) 按照分割符分割,返回分割后的字符串数组 
    find_in_set('ab','ef,ab,de') -- 2                   -- 集合查找函数,返回str在strlist第一次出现的位置,未出现返回0

日期函数

select 
    from_unixtime(
        cast(1622367594000/1000 as bigint),
        'yyyyMMdd'
    ), --  20210530                                     -- UNIX时间戳转日期函数 时间戳要转换成bigint 用cast(filed as bigint)
    unix_timestamp('20210530'), -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值