我有一张表,我试图使用公共表表达式来查找重复行。是我工作的字段如下:CTE没有返回预期值
LOGTIME(数据类型:DATETIME2(7),NULL) ControllerIP(数据类型:nvchar(最大值),NULL)
我有两行数据是有据我所知,它们中的数据相同。我对两列进行了LEN检查,以确保它们的长度相同,但在下面使用CTE时,行不会重复为 。 LogTime列有什么不同吗?我从来没有碰到过这个。
WITH CTE AS
(
SELECT rn = ROW_NUMBER()
OVER(
PARTITION BY LogTime , ControllerIP
ORDER BY Id ASC), *
FROM [DownTime].[dbo].[Records]
)
SELECT * FROM cte
WHERE FileName = '141101.CSV' AND rn > 1
Order By ID
GO
此外,我正在使用Microsoft SQL Server 2008R2。
'LEN'不计尾随空格(和其他非打印字符),所以2个值具有相同LEN和看起来一样,并不意味着它们具有相同的数据 – Lamak 2014-11-14 14:41:04
从逻辑上讲,你的找到重复的策略是合理的。 LogTime或ControllerIP必须不同。 – 2014-11-14 14:41:32
好的。我认为它的确如此。我会谷歌如何做到这一点,沿着这条道路走下去。 – 2014-11-14 14:42:18