我的列中有包含重复值的记录。
例如:
INVOICENUM PRODUCT
-------------------
789789 ABROPT
789789 ABROPT
719648 AZGTEL
754114 GRTYPT
我有 2 条记录,其中发票编号重复,对于第一个编号,我要添加“a”,第二个编号要添加“b”,依此类推。
INVOICENUM PRODUCT
-------------------
789789a ABROPT
789789b ABROPT
719648 AZGTEL
754114 GRTYPT
如何使用 SQL 修复此问题 - 我使用的是 SQL Server 2012 和 Microsoft SQL Server Management Studio 11.0.3000.0?
最佳答案
通常此类问题可以通过分析函数来解决。
select case
when (count(1) over(partition by InvoiceNum) > 1) then
InvoiceNum + Char(row_Number() over(partition by InvoiceNum order by InvoiceNum) + 96)
else
InvoiceNum
end as InvoiceNum,
Product
from MyTable
分析函数的主要优势是性能。
关于sql - 如何使重复值唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063313/