一、
二、
order
by (
case
when regexp_like( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1) , '^[+-]?\d+(\.\d)?\d*$') --正则表达式判断数字
then LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --作填充
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --右填充
end
)
when regexp_like( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1) , '^[+-]?\d+(\.\d)?\d*$') --正则表达式判断数字
then LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --作填充
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --右填充
end
)
二、
order
by (
case
when upper( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) = lower(SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) --大小写一样表示数字
then LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
end
)
when upper( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) = lower(SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) --大小写一样表示数字
then LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
end
)
转载于:https://blog.51cto.com/wuql4689908/752270