私はこれが簡単であることを知っています...
行1、9、18、および21の結果セットを取得する方法についてアドバイスしてください(添付の画像に基づく)??
ありがとう、
ブラッド
私はこれが簡単であることを知っています...
行1、9、18、および21の結果セットを取得する方法についてアドバイスしてください(添付の画像に基づく)??
ありがとう、
ブラッド
行がすべての列で本当に異なる場合は、 を使用できますSELECT DISTINCT
。
SQL Server を使用row_number()
しているため、それぞれに対して 1 つの行を返すために使用することもでき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
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
テーブルに冗長データが存在するため、次のアプローチを使用できます。
一時テーブルを作成し (添付のイメージ テーブルと同じスキーマを使用)、次のクエリを実行します。
Insert into [temptable]
Select [all column names] from [table]
union
Select [all column names] from [table]
その後、元のテーブルからデータを切り捨てて、temptable から元のテーブルに挿入できます。