如何获取K,M,B格式的SQL查询值

时间:2018-04-10 04:30:12

标签: sql

我想从sql查询中获取K,B,M格式的值。可以使用强制转换功能吗?如果是,我怎样才能使用强制转换函数获取值

例如:

1,000 as 1K
1,000,000 as 1M
1,000,000,000 as 1B
etc.

3 个答案:

答案 0 :(得分:0)

尝试使用CASE WHEN

CASE WHEN Column_Name >= 1000 AND Column_Name < 1000000
    THEN CAST(Column_Name/1000 AS VARCHAR) + 'K'
     WHEN Column_Name >= 1000000 AND Column_Name < 1000000000
    THEN CAST(Column_Name/1000000 AS VARCHAR) + 'M'
     WHEN Column_Name >= 1000000000 AND Column_Name < 10000000000
    THEN CAST(Column_Name/1000000000 AS VARCHAR) + 'B'
    ELSE
      CAST(Column_Name AS VARCHAR)
    END 

答案 1 :(得分:0)

请检查:https://www.w3schools.com/sql/func_mysql_cast.asp

并且

这:http://www.mysqltutorial.org/mysql-int/

在MySQL中,有TINY INT SMALLINT MEDIUMINT INT BIGINT

否则,您最好将它们投射到您的服务器上。如果要将它们存储在一列中的不同类型中。这是不可能的。

但是,如果您有三个不同的列并将其存储在其中。您可以尝试这样做:https://www.w3schools.com/sql/func_mysql_case.asp

答案 2 :(得分:0)

您可以使用如下所示的格式方法。每个逗号都会将值减少1000

format(7000000,'$0,,M') will give output of $7M

您可以相应地制作其他格式。对于动态生成,您可以使用Case语句