我有一个包含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
答案 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功能。