代码之家  ›  专栏  ›  技术社区  ›  hushed_voice

在配置单元查询语言中将字符串列转换为3位数的比例

  •  3
  • hushed_voice  · 技术社区  · 8 年前

    我有一个select语句如下

    SELECT t5.Name AS ProductName
    , CAST (t5.salerevenue AS DECIMAL(20,3)) AS Revenue
    , CASE WHEN t5.PreviousRevenue <> 0 THEN CAST(t5.PresentRevenue/t5.PreviousRevenue*100 AS STRING)
           ELSE 'NA' 
           END AS RevenueTrend  
    

    我想将RevenueTrend转换为小数点,最大刻度为3(20)。 123个 ) WHEN t5.PreviousRevenue <> 0 不见了,我得把它显示成“不”

    我试着这样做

    CASE WHEN t5.PreviousRevenue <> 0 THEN CAST((CAST(t5.PresentRevenue/t5.PreviousRevenue*100) AS DECIMAL(20,3)) AS STRING)
         ELSE 'NA' 
         END AS RevenueTrend    
    

    但是我发现了一个语法错误。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Gordon Linoff    8 年前

    尝试先转换为十进制,然后转换为字符串:

    SELECT . . .
           (CASE WHEN t5.PreviousRevenue <> 0
                 THEN CAST(CAST(t5.PresentRevenue/t5.PreviousRevenue*100 AS DECIMAL(20,3)) as string)
                  ELSE 'N/A'
            END) AS RevenueTrend