【发布时间】:2012-05-11 06:02:43
【问题描述】:
我想对文本列进行排序,其中数字组件应按数字排序。排序后的结果应该是这样的:
chr1
chr1,chr1
chr1,chr2
chr1,chr10
chr2
chr2,chr1
chr2,chr2
chr2,chr10
chr6
chr6,chr1
chr6_ux9
chr6_ux9,chr1
chr7
chr10
chr10,chr1
chr10,chr2
chr10,chr10
chr21
chr21,chr1
chr21,chr2
chr21,chr10
chrx
chrx,chr1
chrx,chr2
chrx,chr10
chry
chry,chr1
chry,chr2
chry,chr10
chrmt
chrmt,chr1
chrmt,chr2
chrmt,chr10
chr25
chr25,chr1
chr25,chr2
chr25,chr10
以下规则适用:
-
chrx被视为chr22 -
chry被视为chr23 -
chrmt被视为chr24 -
chr6_ux9是一个特殊情况,应该在chr6之后
我尝试了不同的方法,但无法找到完美的解决方案。如果有人有想法,请帮助我。
【问题讨论】:
-
应该按列排序还是整体排序?像文本一样对数字进行排序?请澄清结果应该是什么样子,并将数据量减少到问题所需的量。
-
整张表应按此列排序。
-
我需要进行字母数字排序
-
看起来像染色体数据,对吧?我在您的问题尚不清楚的地方使用了我的幻想,并相应地添加了
phantastic解决方案。 -
这是一种可怕的数据存储方式。将您的数据库(或至少此列)重新设计为您需要的单独信息。
标签: sql arrays postgresql replace sql-order-by