我想按升序显示页码。但是,由于字段PAGE是String数据类型,所以正常' ORDER BY'考虑10< 2.我必须将字段PAGE设为字符串,因为可以输入像' 3-4'。任何人都可以建议一个出路。我已附上截图供参考。
请帮助。Screenshot
select id
,F_NL
,page
,title
from newsletter_content
where F_NL = '29'
order by page asc;
答案 0 :(得分:1)
{{1}}
<强> rextester demo 强>
答案 1 :(得分:0)
您可以检查是否存在-
字符并提取前面的数字:
ORDER BY CASE
WHEN INSTR( page, '-' ) > 0
THEN TO_NUMBER( SUBSTR( page, 1, INSTR( page, '-' ) - 1 ) )
ELSE TO_NUMBER( page )
END;