2013-05-01 79 views

回答

2

如果行是跨每一列真正獨特的,那麼你可以使用SELECT DISTINCT

由於您使用的SQL Server,你也可以使用row_number()返回一行每個ThreatId

select ThreatId, 
    ThreatTopClient, 
    ... 
from 
(
    select ThreatId, 
    ThreatTopClient, 
    ..., 
    row_number() over(partition by ThreatId order by ThreatMLSeq) rn 
    from xThreatCA 
    where ThreatMLSeq <> N'' 
    and ID <> 0 
) d 
where rn = 1 
order by ThreatMLSeq 
+1

這工作得很好......謝謝! – blub 2013-05-03 01:41:13

2

使用SELECT DISTINCT而不是SELECT

SELECT DISTINCT ThreatID, ThreatTopClient, 
    '#' + CONVERT(NVARCHAR(2), ThreatMLSeq) + ' -- ' + ThreatML AS CAMLPad, 
    ThreatMLSeq, ThreatML, ThratDetailClient, ThreatArea, 
    ThreatFinalInherentRisk, ThreatTier21, ThreatControls, AuditID 
FROM xThreatCA 
WHERE (ThreatMLSeq <> N'') AND (ID <>0) 
ORDER BY dbo.xThreatCA.ThreatMLSeq 
+0

謝謝你的迴應...我感謝你的幫助! – blub 2013-05-03 01:40:03

0

由於存在在你的表中的冗餘數據,你可以用下面的辦法: -

創建臨時表(用相同的架構作爲影像附加表),並執行這個查詢: -

Insert into [temptable] 
Select [all column names] from [table] 
union 
Select [all column names] from [table] 

afterw你可以截斷原始表中的數據,然後從可修改表插入原始表。

+0

使用truncate命令的有趣想法... – blub 2013-05-03 01:40:47