sql如何规整这样的数据?

csover8 2016-05-23 04:39:19
如下A表结构:

id goodname price goodname1 price1
1 奶粉 120.00 国产奶粉 110.00
2 奶粉 120.00 外产奶粉 100.00
3 玩具 90.00 塑料玩具 60.00
4 手机 1200.00 手机模具 125.00

想通过sql,把上面的数据规整成:
id goodname price seque goodname1 price1
1 奶粉 120.00 1 国产奶粉 110.00
2 2 外产奶粉 100.00
3 玩具 90.00 1 塑料玩具 60.00
4 手机 1200.00 1 手机模具 125.00

应该如弄sql? 谢谢
...全文
151 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
範先森 2016-05-24
  • 打赏
  • 举报
回复
达到这个效果之后是在页面上显示出来要?按道理是表A的结构有问题啊,应该拆分成两个表就可以了啊。 select a.id,b.goodname.... from 表A a , (select * from 表A ) b where .... 大概这种,然后按照自己要的逻辑,当做两张表来操作
xdashewan 2016-05-24
  • 打赏
  • 举报
回复
可以是可以,但速度能否保证得看具体的执行计划,总感觉有点得不偿失,过程是这样的 首先用ROW_NUMBER() over partition by得出seque,用法不多说了,不会可以去查,然后有两种途径去掉goodname和price,一种是用case when对得到的seque大于1的goodname和price赋空值。另一种是对得出的seque进行自左联接,左联条件是goodname和price,右方的集合使用seque=1的条件,结果使用右方的goodname和price为显示,所以左边只有seque=1的数据才能左联到数据,结果应该就得到了。两种方式性能上可能会差距,哪种比较快要具体看执行计划
csover8 2016-05-24
  • 打赏
  • 举报
回复
顶一下。。。。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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