如何在 SQL 中格式化以千为单位的数字
How to format a number in thousands in SQL
我正在尝试使用 SQL 将 238350.50 之类的数字格式化为“238”。我使用 ROUND(number_x, -3)
四舍五入到最接近的千位数,它工作正常,但我无法摆脱百位数字。格式应如何工作的更多示例:
- 499.99 变为 0
- 500 变成 1
- 1250 变成 1
- 22500 变成 23
- 231600 变为 232
- 等等
您可以将其视为“k”格式 f.e。 10.000 变成“10k”。
感谢您的帮助!
四舍五入,除以 1000
ROUND(number_x, -3)/1000
with cte as (
select 499.99 as number_x from dual
union all select 500 from dual
union all select 1250 from dual
union all select 22500 from dual
union all select 231600 from dual
)
select number_x, ROUND(number_x, -3)/1000 as new_number_x
from CTE
NUMBER_X
NEW_NUMBER_X
499.99
0
500
1
1250
1
22500
23
231600
232
或者先除后圆
ROUND(number_x/1000)
我正在尝试使用 SQL 将 238350.50 之类的数字格式化为“238”。我使用 ROUND(number_x, -3)
四舍五入到最接近的千位数,它工作正常,但我无法摆脱百位数字。格式应如何工作的更多示例:
- 499.99 变为 0
- 500 变成 1
- 1250 变成 1
- 22500 变成 23
- 231600 变为 232
- 等等
您可以将其视为“k”格式 f.e。 10.000 变成“10k”。
感谢您的帮助!
四舍五入,除以 1000
ROUND(number_x, -3)/1000
with cte as ( select 499.99 as number_x from dual union all select 500 from dual union all select 1250 from dual union all select 22500 from dual union all select 231600 from dual ) select number_x, ROUND(number_x, -3)/1000 as new_number_x from CTE
NUMBER_X | NEW_NUMBER_X |
---|---|
499.99 | 0 |
500 | 1 |
1250 | 1 |
22500 | 23 |
231600 | 232 |
或者先除后圆
ROUND(number_x/1000)