我想通过使用oracle查询显示如下给出的数字:
1000000 1M
22000 22k
Run Code Online (Sandbox Code Playgroud)
请帮忙有没有办法在oracle查询中做到这一点?
我不认为有一个标准功能(除了科学计数法),但你可以定义这样一个自己的功能:
SQL> WITH DATA AS (SELECT power(10, ROWNUM) num FROM dual CONNECT BY LEVEL <= 9)
2 SELECT num,
3 CASE
4 WHEN num >= 1e6 THEN
5 round(num / 1e6) || 'M'
6 WHEN num >= 1e3 THEN
7 round(num / 1e3) || 'k'
8 ELSE to_char(num)
9 END conv
10 FROM DATA;
NUM CONV
---------- -----------------------------------------
10 10
100 100
1000 1k
10000 10k
100000 100k
1000000 1M
10000000 10M
100000000 100M
1000000000 1000M
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1970 次 |
最近记录: |