2
我試圖用複合條件中的相關子查詢,但它並沒有返回預期的結果。你可以看看下面的例子,看看爲什麼第一個查詢不能解決,但第二個查詢解決了嗎?SQL Server中,在相關子查詢多個條件
創建表&填入行:
CREATE TABLE TestCase
(
Seq INT IDENTITY PRIMARY KEY,
ID INT,
Name VARCHAR(50)
)
INSERT INTO TestCase
VALUES
(100, 'MJ'),
(110, 'MJ'),
(120, 'AK'),
(130, 'AK')
首先查詢:
SELECT A.ID, A.Name FROM TestCase AS A
WHERE A.ID IN (SELECT ID FROM TestCase WHERE ID <> A.ID AND Name = A.Name)
(0行(S)的影響)
與第二個查詢存在:
SELECT A.ID, A.Name FROM TestCase AS A
WHERE EXISTS (SELECT ID FROM TestCase WHERE ID <> A.ID AND Name = A.Name)
(4列(S)的影響)
據稱,這兩個查詢將返回所有四個行,但第一個也沒有;我不知道爲什麼只有第二個查詢返回了四行。有人可以幫忙嗎?謝謝。
+1不得不看幾次真正得到它,但它現在是有道理的。爲什麼我不喜歡(或掌握)否定條件的另一個原因...... – 2011-04-17 07:52:39