SQL常用的一些函数

本文介绍了SQL中用于数据去重、时间格式转换、条件判断及格式化输出的方法,包括DISTINCT GROUP BY、STR_TO_DATE、FROM_UNIXTIME、CASE语句等。同时展示了在Mybatis中如何处理条件查询和数组参数的转换,对于数据库操作和前后端交互具有指导意义。
摘要由CSDN通过智能技术生成
SELECT DISTINCT name,age,user_id,MAX(last_update_dt) AS last_update_dt  GROUP BY name,age,user_id
ORDER BY MAX(last_update_dt) desc 
--一般字典表或者下拉框的值都要去重,去重的要用(DISTINCT GROUP BY)展示的值要在GROUP BY进行分组否在无法展示除非使用其他函数进行展示

-- %Y-%m-%d %H:%i:%s 年月日时分秒
SELECT STR_TO_DATE('2016-01-02', '%Y-%m-%d'); --字符串转时间
SELECT FROM_UNIXTIME(1567267200,'%Y-%m-%d'); --时间戳转时间
SELECT UNIX_TIMESTAMP('2019-09-01 00:00:00'); --日期转时间戳
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); --日期转为字符串

-- if else
SELECT 
 CASE 
 WHEN name is '江踏歌1' THEN 'Azure'
 WHEN name is '江踏歌2' THEN '红豆'
 WHEN name is '江踏歌3' THEN '年糕'
 END AS name
FROM
user
-- 查询到name是江踏歌的数据将name改为 Azure,name江踏歌3改为年糕是可以一次写多个,name江踏歌2改为红豆是可以一次写多个

-- 数字千分位 1000-->1,000
SELECT format(1000,'N2') --1,000

-- 数字百分比
SELECT CONCAT(TRUNCATE((0.9194) * 100, 2), '%') -- 90.00% 2表示保留几位

-- 大于&gt;>, 小于&lt;<

-- Mybatis 踩坑语法 scAllAmount="<=500" mis="1,2,3,4"
-- 页面传入 ""  contains是否包含传入的参数 注意因为传入的是"<=500" 函数contains只接受"" 
-- 所以这里的引号需要写成 'params.scAllAmount.contains("&lt;=")'
<if test='params.scAllAmount.contains("&lt;=")'>
    and sc_all_amount &lt;= cast(' ${params.scAllAmount.split("&lt;=")[1]} ' as decimal(12,2))
    -- params.scAllAmount.split 分割后为————[,500]
</if>
<if test="params.mis != null and params.mis !=''">
    and mis in
        <foreach collection="params.mis.split(',')" item="item" open="(" separator="," close=")">
        -- collection 传入的参数 item得到的参数 open以(开始 separator以,分割 close以)
            #{item}
        </foreach>
</if>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值