请哪位高手给个最好的解决方案

leiaming 2006-07-07 10:19:39
a="2006-02-01--2006-02-03"
b="2006-03-01--2006-03-03"
c="2006-02-01--2006-02-03,2006-04-01--2006-04-03"
转换成这样的一个表对应关系
a b c
2006-02-01--2006-02-03 + +
2006-03-01--2006-03-03 +
2006-04-01--2006-04-03 +
...全文
188 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cancerser 2006-07-07
  • 打赏
  • 举报
回复
a="2006-02-01--2006-02-03"
b="2006-03-01--2006-03-03"
c="2006-02-01--2006-02-03
c="2006-04-01--2006-04-03"
以时间分组然后排序很容易得出,排序如果以第一个时间为标准,用字符串排序就OK
"2006-02-01--2006-02-03" a,c
"2006-03-01--2006-03-03" b
"2006-04-01--2006-04-03" c

Eddie005 2006-07-07
  • 打赏
  • 举报
回复
逻辑还是不是很清晰,请lz描述清楚一些
a,b,c从哪里来?还可能有哪些情况?
得到的对应关系表行列如何决定,特别是行
hyena041 2006-07-07
  • 打赏
  • 举报
回复
------------------------------ a b c
2006-02-01--2006-02-03 + +
2006-03-01--2006-03-03 +
2006-04-01--2006-04-03 +
hyena041 2006-07-07
  • 打赏
  • 举报
回复
---------------------- a b c
2006-02-01--2006-02-03 + +
2006-03-01--2006-03-03 +
2006-04-01--2006-04-03 +

搂主是这个意思吧
有加号的,就将这个组成你右边的值
其实就是等于行列变换的问题
先将一对多的关系变换为一对一有重复值,然后进行行列变换
在进行类似表的group by操作,就可以得到你要的结果了
hyena041 2006-07-07
  • 打赏
  • 举报
回复
a b c
2006-02-01--2006-02-03 + +
2006-03-01--2006-03-03 +
2006-04-01--2006-04-03 +
liaodanz 2006-07-07
  • 打赏
  • 举报
回复
看8懂
Knight94 2006-07-07
  • 打赏
  • 举报
回复
你把每个字符串用“,”进行拆分,然后最后去匹配即可。
张赐 2006-07-07
  • 打赏
  • 举报
回复
lz什么意思???
leiaming 2006-07-07
  • 打赏
  • 举报
回复
如何转换成
2006-02-01--2006-02-03 ="a,c"
2006-03-01--2006-03-03 ="b"
2006-04-01--2006-04-03 ="c"
时间要按先后顺序排序
diandian82 2006-07-07
  • 打赏
  • 举报
回复
说啥呢?
BlueDog 2006-07-07
  • 打赏
  • 举报
回复
可以参照十字链表的进行设计,你可以认为它是一个稀梳矩阵
具体的算法请参考数据结构的相关书籍。


leiaming 2006-07-07
  • 打赏
  • 举报
回复
顶一顶
leiaming 2006-07-07
  • 打赏
  • 举报
回复
顶啊

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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