我想把自己當作一個體面的SQL Server程序員,但是這個查詢總是讓我感到困惑。我相信有一個更好的方法來查詢這個。這是我能用我的SQL Server查詢從多個表中獲取數據的最好方法嗎?
SELECT DISTINCT
database_name,
CASE
WHEN ((SELECT MAX(1) FROM dbo.column_list WHERE column_list IS NOT NULL and database_id = d.database_id) = 1
OR (SELECT MAX(1) FROM dbo.table_list WHERE table_list IS NOT NULL and database_id = d.database_id) = 1)
THEN 1
ELSE 0
END AS 'has_definition'
FROM dbo.database_list d;
我有3個表database_list,table_list和column_list。我試圖查詢數據庫列表中的給定數據庫,以查看是否有任何基礎表或列在其中具有定義。這個查詢現在可以工作,並返回一個唯一的數據庫列表和一個has_definition,但這對我來說似乎是錯誤的。
任何想法都會有所幫助。
有沒有辦法通過加入3個表來做到這一點?我認爲我們可以但不能包圍我的頭圍繞邏輯 – darwindeeds 2012-03-21 16:00:02
不知道我明白。你不能添加更多'EXISTS'子句嗎?您需要爲關於這些其他表格的問題添加信息,以及它們如何相關以獲得任何有用的輸入。 – 2012-03-21 16:37:23