如何将数据整合处理

数据表由3个字段,第一个字段为编号,第二个字段和第三个字段做判断用的,

数据分别为

00101     Y    N

00101    N    Y

00101   N    N

00202   N     N

,如果第二个字段有Y或者第三个字段有Y,取Y,如果都是N,也取

经过数据处理后想得到的结果是这样的

00101     Y    Y

00202    N    N

FineReport 冰雨咖啡 发布于 2022-10-25 14:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
LTC朝Lv6高级互助
发布于2022-10-25 14:47

给你一个思路:

sql中用case when将‘Y’转化为1,将‘N’转化为0,然后分组求和,这样你会得到的数据如下:

00101     1     1

00202     0     0

最后再将‘1’转换为‘Y',将'0'转换为'N'

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-10-25 14:53

什么数据库?

最佳回答
0
帆软用户s1Pwsa2BAQLv5初级互助
发布于2022-10-25 15:30

用case when 可以实现

将第二个字段和第三个字段的值作为判断条件将满足条件的赋值为大于0的数(最好足够大)不满足的赋值为小于0的数(最好足够小-1最好),求和之后大于0说明两列数据里的有Y ,小于0说明只含有N。嵌套一次sql 使用CASE WEHN 判断该列大于0赋值为Y,否则赋值为N,需要保证两列的原数据的话就把这列 再取一边 随便重命名下就行了

CASE WHEN 字段2=Y OR 字段3=Y THEN 5000 ELSE -1 END 判断

嵌套外层sql 

CASE WHEN 判断>0 THEN Y ELSE N END 字段2

CASE WHEN 判断>0 THEN Y ELSE N END 字段3

由于同时对两列进行判断的,所以实现的效果就是俩列数据里是否含有Y,含有为Y ,不含有为N

最佳回答
0
最懒的小孩Lv3初级互助
发布于2022-10-25 15:33

select * from 你的表名

where

(字段2 = 'Y' OR 字段3 = 'Y')

OR

(字段2 = 'N' AND 字段3 = 'N')

  • 3关注人数
  • 334浏览人数
  • 最后回答于:2022-10-25 15:33
    请选择关闭问题的原因
    确定 取消
    返回顶部