求排序,该如何解决

求排序由如下数据1+122+34+555+希望排序成123452+5++1+5在线等!急。谢谢[解决办法]SQL codewith t as (sele

求排序
由如下数据
1
+1
2
2+
3
4
+5
5
5+

希望排序成
1
2
3
4
5
2+
5+
+1
+5


在线等!急。谢谢

[解决办法]

SQL code
with t as (select '1' b from dual union allselect '+2' b from dual union allselect '+1' b from dual union allselect '2' b from dual union allselect '1+' b from dual )select t.b from t order by decode(instr(t.b,'+'),0,1,1,3,2),replace(t.b,'+','')
[解决办法]
临时拼凑出来的,你可以先将就下,哈哈

WITH tt AS(
SELECT '1' AS A FROM DUAL
UNION ALL
SELECT '+1' FROM DUAL
UNION ALL
SELECT '2' FROM DUAL
UNION ALL
SELECT '2+' FROM DUAL
UNION ALL
SELECT '3' FROM DUAL
UNION ALL
SELECT '4' FROM DUAL
UNION ALL
SELECT '+5' FROM DUAL
UNION ALL
SELECT '5' FROM DUAL
UNION ALL
SELECT '5+' FROM DUAL
)
SELECT * FROM (SELECT * FROM tt WHERE LENGTH(A) = 1
ORDER BY A ASC) K
UNION ALL
SELECT * FROM (SELECT * FROM tt WHERE LENGTH(A) = 2 AND A NOT LIKE '+%'
ORDER BY A ASC)M
UNION ALL
SELECT * FROM (SELECT * FROM tt WHERE LENGTH(A) = 2 AND A LIKE '+%'
ORDER BY A ASC)L

[解决办法]

探讨
SQL code


with t as (
select '1' b from dual
union all
select '+2' b from dual
union all
select '+1' b from dual
union all
select '2' b from dual
union all
select '1+' b from dual
)……

[解决办法]
探讨
SQL code

with t as (
select '1' b from dual
union all
select '+2' b from dual
union all
select '+1' b from dual
union all
select '2' b from dual
union all
select '1+' b from dual
)
……

[解决办法]
WITH T AS(
SELECT '1' AS A FROM DUAL
UNION ALL
SELECT '+1' FROM DUAL
UNION ALL
SELECT '2' FROM DUAL
UNION ALL
SELECT '2+' FROM DUAL
UNION ALL
SELECT '3' FROM DUAL
UNION ALL
SELECT '4' FROM DUAL
UNION ALL
SELECT '+5' FROM DUAL
UNION ALL
SELECT '5' FROM DUAL
UNION ALL
SELECT '5+' FROM DUAL
)
SELECT a from T ORDER BY length(a) ,REPLACE(a,'+','@')