SELECT
n.NodeID,
n.Caption,
n.IPAddress,
n.DNS,
n.Status,
n.Uri,
CASE
WHEN n.Caption LIKE '%.%.%.%' THEN n.Caption
WHEN CHARINDEX('.', n.Caption) > 0 THEN SUBSTRING(n.Caption, 1, CHARINDEX('.', n.Caption) - 1)
ELSE n.Caption
END AS CompareKey
FROM Orion.Nodes n
WHERE
CASE
WHEN n.Caption LIKE '%.%.%.%' THEN n.Caption
WHEN CHARINDEX('.', n.Caption) > 0 THEN SUBSTRING(n.Caption, 1, CHARINDEX('.', n.Caption) - 1)
ELSE n.Caption
END
IN
(
SELECT
CASE
WHEN n2.Caption LIKE '%.%.%.%' THEN n2.Caption
WHEN CHARINDEX('.', n2.Caption) > 0 THEN SUBSTRING(n2.Caption, 1, CHARINDEX('.', n2.Caption) - 1)
ELSE n2.Caption
END AS CompareKey
FROM Orion.Nodes n2
GROUP BY
CASE
WHEN n2.Caption LIKE '%.%.%.%' THEN n2.Caption
WHEN CHARINDEX('.', n2.Caption) > 0 THEN SUBSTRING(n2.Caption, 1, CHARINDEX('.', n2.Caption) - 1)
ELSE n2.Caption
END
HAVING COUNT(*) > 1
)
ORDER BY CompareKey, n.Caption, n.NodeID