MYSQL SELECT 合并两条记录,取有值的数据

hhhh63 2019-10-29 06:48:35
MYSQL SELECT 合并两条记录,取有值的数据,如果都有值,取最后一条
...全文
390 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhhh63 2019-11-02
  • 打赏
  • 举报
回复
我的需求没说清楚,就是取一个表各字段的最后一个有效数据,条件是不为空,按ID排序,各字段的最后一个有效数据在不同的记录中。按楼上的说法,可能写不出通用SQL。
不过我实现了两条记录的SQL语句,方法是两个子查询,一个主查询,两个子查询返回两条记录,主查询把两个子查询合在一起,取不为空的字段。
有点麻烦,不适合多条记录,好在我的项目中就是两条记录,一个是默认,一个是特殊值。先凑合用了,谢谢各位,结贴!
过眼浮云866 2019-10-29
  • 打赏
  • 举报
回复
这个sql 应该写不出来,需要用到存储过程;

先把需要的数据插入临时表A,临时表A需要有自增id;
-- 分2个步骤提取数据,一,先查不重复的数据;二,重复数据取最大id;
一,
然后先判断哪些id对应的数据是重复的,重复 的打个标记为T,不重复的为F;
二,
再根据标记找到重复的数据分组,取数据对应的最大id,插入临时表B;

关联最开始的临时表A和B 取数据输出结果;
select * from A where a.标记 = 'F'
union all
select * from A where a.自增id in (select id from B);


  • 打赏
  • 举报
回复
取最后一条,这个怎么区分是最后一条,有标识字段吗?
  • 打赏
  • 举报
回复
兄弟,给的具体点,比如表数据什么的

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧