我在表格中有三列:
Name Ascii_Name Alternate_names
Abat Abat1 Abat, Abat1
Abayah Abayah1 Abayah,Abayah1
Abayah Abayah1 Abayah,Abayah1
Abat Abat1 Abat, Abath
Carne Carnt Carne, Carnt
对于值相同的(Name和Ascii_Name)对,我必须在Alternate_names中找到值不同的值。结果集必须包含Alternate_Names,其中(Name和Ascii_Name)对重复至少两次。结果必须如下:
Name Ascii_Name Alternate_names
Abat Abat1 Abat, Abat1
Abat Abat1 Abat, Abath
请注意,结果集不包含最后一行值(Carne Carnt Carne,Carnt),因为它没有重复。
答案 0 :(得分:1)
通过查看从原始表中获得的结果集,我认为您希望找到名称& Ascii_Name是相同但不同的备用名称。请找到以下查询..
DECLARE @Collection TABLE(
Name VARCHAR(MAX),
Ascii_Name VARCHAR(MAX),
Alternate_names VARCHAR(MAX)
)
---- Tempory table data insert
INSERT INTO @Collection VALUES ('Abat','Abat1','Abat, Abat1'),
('Abayah','Abayah1','Abayah,Abayah1'),
('Abayah','Abayah1','Abayah,Abayah1'),
('Abat','Abat1','Abat, Abath')
-- Solution
SELECT col1.Name,
col1.Ascii_Name,
col1.Alternate_names
FROM @Collection col1
INNER JOIN @Collection col2 ON col1.Name = col1.Name AND col1.Ascii_Name = col2.Ascii_Name
WHERE col1.Alternate_names <> col2.Alternate_names
答案 1 :(得分:0)
这就是你想要的吗?
select Name, Ascii_Name
from yourtable
group by Name, Ascii_Name
having min(Alternate_names) <> max(Alternate_names)