SQL:导出到XML会将数字数据重新格式化为科学计数法

时间:2018-12-21 17:32:13

标签: sql xml

我在工作中继承了一些SQL代码。我真的很了解基本的SQL,如果这很简单,我深表歉意。

代码将SQL查询导出到XML。 SQL表中的数字字段看起来不错,但是当导出为XML时,它们将转换为指数表示法: 5.600000000000000e + 001,应为56。它们都应为整数,因此我认为有一种方法可以规定。任何帮助表示赞赏。

代码如下:

WITH INSTs AS (
    SELECT DISTINCT INST_CODE CODE, 
            INST_NAME name,  
            INST_REGION region,
        FROM dbo.Y4CONT_OUTDATA),
CONTs AS (
    SELECT DISTINCT INST_CODE,
            CONT_ID,
            CONT_CATEGORY
        FROM dbo.Y4CONT_OUTDATA)
SELECT CODE,
        name,
        region,
        majorityMode,
        (SELECT CONT_ID, CONT_Category,
                (SELECT FT_HEADCOUNT FT_Headcount,
                        PT_HEADCOUNT PT_Headcount,
                        TOTAL_HEADCOUNT total_Headcount                     
                    FROM dbo.Y4CONT_OUTDATA d
                    WHERE CODE = d.INST_CODE
                        AND ct.CONT_ID = d.CONT_ID
                        AND ct.CONT_CATEGORY = d.CONT_CATEGORY
                    FOR XML PATH(''), TYPE) [*]
            FROM CONTs ct
            WHERE CODE = ct.INST_CODE
                AND CONT_ID = ct.CONT_ID
                AND CONT_CATEGORY = ct.CONT_CATEGORY
            FOR XML PATH('CONT'), root('CONTData'), TYPE) [*]
    FROM INSTs
    --Wrapping element for each INST
    FOR XML PATH ('INST'), 
--Wrapping element for the whole .XML
root('PUB2019CONTData')

1 个答案:

答案 0 :(得分:0)

有问题的列可能不是整数类型。尝试将它们转换为integer或(bigint(如果需要))。

convert(integer, <column name>)