在SQL Server中更改科学记数法

时间:2018-01-12 15:08:40

标签: sql sql-server

我有一个包含2列[supplier_code],[EAN]的表格,作为bigint。

例如:

1. 1000 / 234562
2. 1001 / 332221
3. 1000 / 222221

问题是,当我使用组连接时,它会转换为科学记数法

 1. 1000 / 2.35E+05 and 2.22E+05
 2. 1001 / 2.22E+05

我想要的结果是

 1. 1000 / 234562 and 222221
 2. 1001 / 332221

1 个答案:

答案 0 :(得分:0)

您可以让某人调试该自定义GROUP_CONCAT_DS函数的代码。

或使用标准T-SQL进行群组连接。

例如:

declare @TestEAN table (supplier_code bigint, EAN bigint);

insert into @TestEAN (supplier_code, EAN) values
(1000, 1234567890123456701),
(1000, 1234567890123456702),
(1001, 1234567890123456789);

IF OBJECT_ID('tempdb..#tmpEAN') IS NOT NULL DROP TABLE #tmpEAN;

SELECT supplier_code as [Supplier Code],
[EAN] = STUFF((
          SELECT ' and ' + cast(t2.EAN as varchar(30))
          FROM @TestEAN t2
          WHERE t.supplier_code = t2.supplier_code
          FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 5, '')
INTO #tmpEAN
FROM (
    select supplier_code
    from @TestEAN 
    group by supplier_code
) t;

select * from #tmpEAN;

请注意,SQL Server 2017包含STRING_AGG功能。