【发布时间】:2011-08-04 16:29:26
【问题描述】:
我想对一个字母数字字符串进行排序...
示例字符串:
D12,D13
F19,F20
A12,A13
F10,F11
D14
A1,A2
A5,A6
D4,D5
F5,F6,F7
期望的输出:
A1,A2
A5,A6
A12,A13
D4,D5
D12,D13
D14
F5,F6,F7
F10,F11
F19,F20
帮帮我!!!!
【问题讨论】:
-
这不是一个尝试在 SQL 中执行的好过程。您可以在调用应用程序中执行此操作吗?
-
总是以单个字母开头吗?
-
喂。这种双重解析不仅是因为您有几组要一起排序的字符串,而且组中的字符串数量甚至不一致(最后一组有 3 个元素,而不是 2 个)。我建议 CLR 或您的应用程序代码对这些字符串的排序进行了比 T-SQL 更好的优化。
-
您能否指定您使用的 SQL Server 版本?我还冒昧地编辑了标题(无需大喊大叫)。
-
当像排序这样简单的事情变得困难时,您可以确定是糟糕的设计导致了它。通过更改表格来纠正问题。永远不要每列存储一个以上的值。在这里,我看到了一个以逗号分隔的复合值列表。将复合值(字母数字)拆分为两列(一列用于字母部分,另一列用于数字)。此外,将逗号分隔的列表拆分为额外的行,然后
ORDER BY将很简单。
标签: sql-server sql-server-2008 sql-server-2008-r2