我在我的分贝的字符串是这样的:SQL命令字符串,数字递增
DE-1016-860
DE-1016-1078
DE-1016-1166
我如何ORDER BY order_numbers
在SELECT
像这样这样的元素:
DE-1016-1166
DE-1016-1078
DE-1016-860
感谢您对帮助我这个。
我的解决方案是在这个问题之后!
我在我的分贝的字符串是这样的:SQL命令字符串,数字递增
DE-1016-860
DE-1016-1078
DE-1016-1166
我如何ORDER BY order_numbers
在SELECT
像这样这样的元素:
DE-1016-1166
DE-1016-1078
DE-1016-860
感谢您对帮助我这个。
我的解决方案是在这个问题之后!
这里假设你的前缀始终是相同的,从而TO_NUMBER的最后一个字符:
SELECT str
FROM (SELECT 'DE-1016-860' str FROM DUAL
UNION ALL
SELECT 'DE-1016-1078' str FROM DUAL
UNION ALL
SELECT 'DE-1016-1166' str FROM DUAL)
ORDER BY TO_NUMBER (SUBSTR (str, 9, 4)) DESC
希望这有助于!
如果您的格式始终是AA - #### - 。。 那么您可以尝试使用LEFT(),RIGHT()和SUBSTRING()。
例:ORDER BY LEFT(order_number,2), SUBSTRING(order_number,4,4) DESC, SUBSTRING(order_number, 9,4) DESC
希望这有助于!
找到了解决办法:
ORDER BY SUBSTR(order_number FROM 1 FOR 8), CAST(SUBSTR(order_number FROM 8) AS UNSIGNED)
首先我给他们的端点起始点值1和8:
12345678
DE-1016-
你可以看到八个字符。第二我从第八个数字进行演员,它工作正常。它给我我的数字,从最高到最低排序。
是固定的字符串格式吗? –
@vkp当然是,类型是varchar(255) – ItsOdi
@ItsOdi,我的答案在下面有帮助吗? –