我有一张桌子,上面有ID
,FirstName
和Lastname
。
我使用以下查询进行选择:
SELECT USER_ID as [ID], First_P + ' ' + Last_P as FullName FROM Persons
一切正常。我基本上有一个ID和全名的列表。
全名可以相同。我怎么可能找到它们并在全名单元格上添加ID?仅当名称相同时。
示例:
1 John Wick (1)
50 John Wick (50)
我还没有发现任何类似的问题,至少对于MSSQL而言不是。所以,如果有的话,随时联系我。
答案 0 :(得分:0)
请看看我的答案。我使用嵌套查询来识别重复名称的数量
SELECT
ID,
IIF(NUMBEROFDUPS =1, NAME, CONCAT(NAME, ' (', ID, ')')) AS NAME
FROM
(
SELECT
ID,
CONCAT(First_P, ' ', Last_P) AS NAME,
COUNT(*) OVER (PARTITION BY First_P,Last_P) AS NUMBEROFDUPS
FROM
Table1
) tmp;
答案 1 :(得分:0)
您可以使用外部应用程序通过First_P + ' ' + Last_P
,然后为多个项目添加大小写。
所选内容应如下:
SELECT USER_ID as [ID], p1.First_P + ' ' + p1.Last_P + case when cnt.FullName is not null
then '(' + p2.[sum] + ')' else '' end as FullName FROM Persons p1
outer apply (select First_P + ' ' + Last_P as FullName,count(1) as [sum]
from Persons p2
where p2.First_P + ' ' + p2.Last_P = p1.First_P + ' ' + p1.Last_P
group by First_P + ' ' + Last_P
having count(1) > 1) cnt