0

重新排序行

我的数据库中的一行以随机顺序使用以下字符

HFMNLBX#&I

它的输入很奇怪,行就像 HF 和 FH,它们都相当于系统。有没有办法更新所有行按字母顺序排列,然后是最后的字符?

谢谢

4

1 回答 1

1

这是一种按字母顺序排列列中字符的方法:

select concat((case when col like '%A%' then 'A' else '' end),
              (case when col like '%B%' then 'B' else '' end),
              . . .
              (case when col like '%Z%' then 'Z' else '' end)
             ) as newcol
from t

请注意,这不处理重复的字母。

我不确定你所说的“最后的字符”是什么意思。例如,您可以使用子查询来处理其中的一个子集。

或者,如果您想保留 之后的所有内容#,例如:

select concat((case when col like '%A%#%' then 'A' else '' end),
              (case when col like '%B%#%' then 'B' else '' end),
              . . .
              (case when col like '%Z%#%' then 'Z' else '' end),
              substring(col, locate('#', col) - 1)
             ) as newcol
from t
于 2013-04-29T23:07:03.073 回答