如何在 SQL 中格式化以千为单位的数字

How to format a number in thousands in SQL

我正在尝试使用 SQL 将 238350.50 之类的数字格式化为“238”。我使用 ROUND(number_x, -3) 四舍五入到最接近的千位数,它工作正常,但我无法摆脱百位数字。格式应如何工作的更多示例:

您可以将其视为“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)