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表示保留几位
-- 大于>>, 小于<<
-- Mybatis 踩坑语法 scAllAmount="<=500" mis="1,2,3,4"
-- 页面传入 "" contains是否包含传入的参数 注意因为传入的是"<=500" 函数contains只接受""
-- 所以这里的引号需要写成 'params.scAllAmount.contains("<=")'
<if test='params.scAllAmount.contains("<=")'>
and sc_all_amount <= cast(' ${params.scAllAmount.split("<=")[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>
SQL常用的一些函数
于 2022-02-28 16:38:53 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)