python或者sql信息补全问题

Lee_624 2019-07-31 06:00:19
姓名 身份证 手机 1 空 123 2 888 空 1 777 空 2 空 00 像这种数据怎么补齐成 姓名 身份证 手机 1 777 123 2 888 00
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lee_624 2019-08-01
  • 打赏
  • 举报
回复
有人会吗?求解答
Lee_624 2019-08-01
  • 打赏
  • 举报
回复
引用 4 楼 二月十六 的回复:
用mssql写的,和mysql差不多
--测试数据
if not object_id(N'Tempdb..#T') is null
	drop table #T
Go
Create table #T([姓名] int,[身份证] nvarchar(23),[手机] nvarchar(23))
Insert #T
select 1,N'空',N'123' union all
select 2,N'888',N'空' union all
select 1,N'777',N'空' union all
select 2,N'空',N'00'
Go
--测试数据结束
SELECT DISTINCT * FROM (
SELECT
    a.姓名,
    CASE WHEN a.身份证='空'THEN  b.身份证 ELSE a.身份证 end AS 身份证,
    CASE WHEN a.手机='空'THEN  b.手机 ELSE a.手机 end AS 手机
FROM
    #T     a
    LEFT JOIN
        #T b
            ON b.姓名 = a.姓名
               AND b.手机 <> a.手机
               AND b.身份证 <> a.身份证
			   )t
谢谢,我试试
二月十六 2019-08-01
  • 打赏
  • 举报
回复
用mssql写的,和mysql差不多
--测试数据
if not object_id(N'Tempdb..#T') is null
	drop table #T
Go
Create table #T([姓名] int,[身份证] nvarchar(23),[手机] nvarchar(23))
Insert #T
select 1,N'空',N'123' union all
select 2,N'888',N'空' union all
select 1,N'777',N'空' union all
select 2,N'空',N'00'
Go
--测试数据结束
SELECT DISTINCT * FROM (
SELECT
    a.姓名,
    CASE WHEN a.身份证='空'THEN  b.身份证 ELSE a.身份证 end AS 身份证,
    CASE WHEN a.手机='空'THEN  b.手机 ELSE a.手机 end AS 手机
FROM
    #T     a
    LEFT JOIN
        #T b
            ON b.姓名 = a.姓名
               AND b.手机 <> a.手机
               AND b.身份证 <> a.身份证
			   )t
Lee_624 2019-07-31
  • 打赏
  • 举报
回复
引用 1 楼 二月十六 的回复:
补齐的规则是什么?
上面的例子是按姓名一样的
二月十六 2019-07-31
  • 打赏
  • 举报
回复
补齐的规则是什么?

56,687

社区成员

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

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