2013-07-15 65 views
-2

如何驗證服務器列表中的任何服務器是否不存在於我的表中?t-sql查詢來驗證是否存在任何服務器

(我需要驗證server1,server2或server3是否不存在於我的Nodes表中)。

I'm使用SQL Server 2008

+0

你的節點表是什麼樣的?你有什麼嘗試? – tsells

+0

我沒有成功嘗試這樣:SELECT Nodes.Caption FROM 節點 WHERE NOT EXISTS(選擇節點nodes.caption其中nodes.caption像 的 'server1', '服務器2', '服務器3') – user1658549

+0

你的節點表是什麼樣的? – tsells

回答

0

如果我正確地解釋你的問題,這應該工作。但是這個問題相當模糊......你是在尋找server1,2,3嗎?或者這是一個表值參數還是來自其他來源?多一點背景會有很大幫助。

;WITH servers AS (
SELECT 'server1' AS server UNION 
SELECT 'server2' AS server UNION 
SELECT 'server3' AS server) 

SELECT 
    * 
FROM 
    servers 
    LEFT OUTER JOIN Nodes ON (Nodes.Caption = servers.server) 
WHERE 
    (Nodes.Caption IS NULL) 
+1

或者,對於非'NULL'解決方案:'SELECT server FROM servers EXCEPT SELECT caption AS server AS FROM nodes' – stakx

+0

此查詢的輸出爲空,因爲我的表中沒有這3個服務器,但我是喜歡在查詢的輸出中看到這3個服務器。 – user1658549

+0

非常感謝,我做了這個改變,現在它工作的很好! WITH AS( SELECT 'server1的' AS服務器UNION 選擇 '服務器2' AS服務器UNION 選擇 '服務器3' AS服務器) 選擇服務器從服務器只不過選擇字幕AS服務器從節點服務器 – user1658549

相關問題