我在工作中继承了一些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')
答案 0 :(得分:0)
有问题的列可能不是整数类型。尝试将它们转换为integer
或(bigint
(如果需要))。
convert(integer, <column name>)