從以下數據腳本中,我只想得到最後一個組合('1111111113','viber')作爲選擇結果。我想搜索臨時表並嘗試查找僅用於一種類型的數字(僅用於我的示例'viber')。如何從sql表中獲取特定結果
CREATE TABLE #temp
(number NVARCHAR(MAX),
[type] NVARCHAR(MAX)
);
INSERT INTO #temp
VALUES
('1111111111', 'tel'),
('1111111111', 'tel'),
('1111111111', 'viber'),
('1111111111', 'viber'),
('1111111111', 'tel2'),
('1111111111', 'tel2'),
('1111111112', 'tel'),
('1111111112', 'tel'),
('1111111112', 'tel2'),
('1111111112', 'tel2'),
('1111111113', 'viber'),
('1111111113', 'viber');
我首先想到的是下面的select查詢
SELECT DISTINCT
*
FROM #temp
WHERE [type] = 'viber'
AND number NOT IN
(
SELECT number
FROM #temp
WHERE [type] <> 'viber'
);
但我試圖尋找是否有可能比這更有效的辦法了。我的桌子上有數百萬的數據,所以我需要確保我的搜索結果足夠快。
在此先感謝。
PS。這是我第一次在閱讀多年後在stackoverflow上發佈的東西,所以請原諒我如果我做了錯誤的方式。