You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Synapse中转换科学计数法?

如何在Azure Synapse Analytics中转换科学计数法

科学计数法示例

一、SQL池(专用/无服务器)场景

针对SQL池中的科学计数法数值(或字符串形式的科学计数法),可通过以下T-SQL方法转换:

  • FORMAT函数:支持自定义格式,可将数值转为带千分位或指定小数位数的常规格式
    -- 转换字符串型科学计数法为整数格式
    SELECT FORMAT(TRY_CAST('1.2345e+05' AS FLOAT), 'N0') AS ConvertedValue;
    -- 保留两位小数格式
    SELECT FORMAT(TRY_CAST('1.2345e+05' AS FLOAT), 'N2') AS ConvertedValue;
    
    注:TRY_CAST用于避免转换失败时抛出错误,若确定字段为合法数值类型,可直接使用CAST。
  • STR函数:将数值转为指定长度和小数位数的字符串
    SELECT STR(CAST('1.2345e+05' AS FLOAT), 10, 0) AS ConvertedValue;
    
    参数说明:第一个参数为目标数值,第二个为总字符长度,第三个为小数位数。

二、Spark池场景

在Synapse Spark池中,可通过PySpark函数处理:

  • format_number函数:格式化数值为指定小数位数的字符串
    from pyspark.sql.functions import format_number, col
    
    # 假设DataFrame含字段ScientificCol(科学计数法数值)
    df = df.withColumn("ConvertedValue", format_number(col("ScientificCol"), 0))
    
  • 类型转换结合字符串格式化:先转成decimal类型再转字符串
    df = df.withColumn("ConvertedValue", col("ScientificCol").cast("decimal(18,2)").cast("string"))
    
  • 处理字符串类型的科学计数法:先转成double类型再格式化
    from pyspark.sql.functions import expr
    
    df = df.withColumn("ConvertedValue", expr("format_number(cast(ScientificCol as double), 2)"))
    

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:50:19