重新排序行
我的数据库中的一行,它是一个随机顺序,带有以下字符
HFMNLBX#&安培;我
输入奇怪,行如HF和FH,它们都相当于系统。有没有办法更新所有行按字母顺序排列,然后是最后的字符?
由于
答案 0 :(得分: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