我想从sql查询中获取K,B,M格式的值。可以使用强制转换功能吗?如果是,我怎样才能使用强制转换函数获取值
例如:
1,000 as 1K
1,000,000 as 1M
1,000,000,000 as 1B
etc.
答案 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
语句