2012-05-09 4 views
1

テーブルに一意の値のみを挿入しようとしていますが、動作していません。すべての6000行のセキュリティテーブルにLastDownloadの値が1つだけあります。しかし、私のクエリでは、@ Tempにその値の6000を超える重複があります。私はただ一つの価値しか求めません。私は何が欠けていますか?新しいテーブルに一意の行のみを挿入しようとしています

DECLARE @Temp TABLE (Info VARCHAR(256)) 

INSERT INTO @Temp 
SELECT LastDownLoad 
FROM Securities AS S 
WHERE NOT EXISTS(SELECT * FROM @Temp AS T WHERE T.Info = S.LastDownLoad) 

答えて

1

distinctを試しましたか?

DECLARE @Temp TABLE (Info VARCHAR(256)) 

INSERT INTO @Temp 
SELECT LastDownLoad 
FROM Securities AS S 
WHERE NOT EXISTS(SELECT DISTINCT * FROM @Temp AS T WHERE T.Info = S.LastDownLoad) 
2

多分これが過度に単純化され...しかし...一緒に両方の答えを入れて

DECLARE @Temp TABLE (Info VARCHAR(256)) 

    INSERT INTO @Temp 
    SELECT Distinct LastDownLoad 
    FROM Securities 
2

...合うようだ、とあなたは完全な答えを得る:

DECLARE @Temp TABLE (Info VARCHAR(256)) 

INSERT INTO @Temp 
SELECT DISTINCT LastDownLoad 
FROM Securities AS S 
WHERE NOT EXISTS(SELECT * FROM @Temp AS T WHERE T.Info = S.LastDownLoad)