SQL
wanghan1977
这个作者很懒,什么都没留下…
展开
-
如何让空或者Null得字段在排序中排到后面
order by case when dorder is null or dorder = '' then 1 else 0 end, dorder比如dorder是排序字段,让这个字段作为空或非空做第一排序字段,然后在用作普通排序,这样就可以把空值排到后面了原创 2020-12-16 15:42:08 · 1662 阅读 · 0 评论 -
将既存的1对多改造为多对多的数据结构方法
原主从表为1对多关系A为主表,B为从表,查询语句如下:SELECT * FROM B b LEFT JOIN A a ON b.parent_id = a.id由于业务调整,A与B转化为多对多关系1. 建立A与B的关联关系表CREATE TABLE a_b_relation( a_id VARCHAR(40), b_id VARCHAR(40) ...原创 2020-04-16 10:37:48 · 496 阅读 · 0 评论 -
mysql-判断年份是否是闰年
业务碰到一个场景,存储过程中需要根据当前年份是否是闰年计算年天数,网上搜索后没有比较简易的做法,思考后做出判断函数如下:DELIMITER $$DROP FUNCTION IF EXISTS `fun_is_leap_year`$$CREATE FUNCTION `fun_is_leap_year`(year_varchar VARCHAR (20)) RETURNS INT(11)...原创 2019-08-22 13:23:47 · 2206 阅读 · 0 评论 -
mysql-根据周期,当前月,总金额计算按天数拆分后当月金额(含期末补足)
业务需要将一笔金额按照发生期间总天数拆分后折算到每个月中,余额补足到最后一个月,如下:DELIMITER $$DROP FUNCTION IF EXISTS `fun_divid_monthly_data`$$CREATE FUNCTION `fun_divid_monthly_data`( param_current_month VARCHAR (42), param_st...原创 2019-08-22 13:27:40 · 621 阅读 · 0 评论 -
mysql-根据年度开始日获取年度天数
场景是需要对年费按日拆分,就需要根据年度开始日获取年度天数DELIMITER $$DROP FUNCTION IF EXISTS `fun_get_yearly_day_count`$$CREATE `fun_get_yearly_day_count`(yearly_begin_date DATE) RETURNS INT(11)BEGIN DECLARE year_varch...原创 2019-08-22 13:31:07 · 1830 阅读 · 0 评论 -
mysql-创建时间维度表
做系统设计以及涉及数据分析的时候,会涉及到各种期间维度的统计计算。可以按日期生成期间维度表,如下:1.按期间生成日期表DROP TABLE IF EXISTS `v_day`;CREATE TABLE `v_day` (`oc_date` varchar(20) DEFAULT NULL);2.调用方法为输入开始结束日期,生成期间的日期DELIMITER $$D...原创 2019-08-22 13:48:00 · 723 阅读 · 0 评论 -
mysql-根据年度开始日获取年度终了日
场景是已知年度开始日为任意一天,求年度的终了日--其中考虑了跨年,夹闰月DELIMITER $$DROP FUNCTION IF EXISTS `fun_get_yearly_end_date`$$CREATE FUNCTION `fun_get_yearly_end_date`(yearly_begin_date VARCHAR (20)) RETURNS VARCHAR(20) ...原创 2019-08-27 09:03:08 · 153 阅读 · 0 评论