您可以使用DECODE
(或CASE
)语句(并可以放置有意义的值),并且由于要获取3个字符的子字符串,因此需要包括尾随空格:
如果查询的简化版本是:
SELECT SUBSTR( name, 9, 3 ) AS tenor,
name
FROM table_name
ORDER BY SUBSTR( name, 1, 8 ),
DECODE(
tenor,
'ON ', 1/30,
'SW ', 7/30,
'1M ', 1,
'2M ', 2,
'3M ', 3,
'6M ', 6,
'9M ', 9,
'1Y ', 12,
'18M', 18,
'2Y ', 24,
'3Y ', 36,
'5Y ', 60,
'10Y', 120,
NULL
) ASC NULLS LAST
对于测试数据:
CREATE TABLE table_name ( name ) AS
SELECT 'ARZ USD 18M FX FORWARD' FROM DUAL UNION ALL
SELECT 'BRZ USD 10Y FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 1Y FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 2M FX FORWARD' FROM DUAL UNION ALL
SELECT 'BRZ USD 1M FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 6M FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 3M FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 1M FX FORWARD' FROM DUAL UNION ALL
SELECT 'ARZ USD 9M FX FORWARD' FROM DUAL UNION ALL
SELECT 'BRZ USD 1Y FX FORWARD' FROM DUAL;
输出:
天诺| 名称 :---- | :--------------------- 1M | ARZ 100万美元外汇交易 2M | ARZ 200万美元外汇交易 3M | ARZ 300万美元外汇交易 6M | ARZ 600万美元外汇前瞻 9M | ARZ 900万美元外汇 1年| ARZ USD 1Y FX FORWARD 18M | ARZ 1800万美元外汇 1M | BRZ 100万美元外汇前瞻 1年| BRZ 1年美元外汇汇率 10年| BRZ 10年期美元外汇前瞻
db <>在这里拨弄
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句