0
我有一組數字和id
(主鍵)和text
(非空)列的數據庫中的表。我想創建一個查詢,返回集合中的所有數字以及表中的相關文本。不幸的是在數據庫中的id
列不存在的所有數字,所以這是行不通的:在數據庫中使用一組數字而不創建臨時表
select id, text
from table
where id in (<set of numbers>)
對於不存在的IDS最好將返回null
從查詢的文本。
有沒有辦法在沒有首先從數據庫內的集合創建臨時表的情況下產生所需的輸出?
正在使用的數據庫引擎是Microsoft SQL Server 2008 SP1,但我會對任何數據庫引擎的解決方案感興趣。
爲什麼要避免創建臨時表?這似乎是對我來說最明顯的解決方案。 – RationalGeek 2010-05-03 16:23:17
@jkohlhepp;它不一定是最好的解決方案,例如oracle可以通過雙向遞歸查詢生成序列號,該序列號可以更好地縮放然後物化版本。沒有關於MS SQL性能的數據。 – Unreason 2010-05-04 08:13:10
Unreason給出了這個請求的確切原因 - 我會避免頻繁地創建非常大的表。 – Zizzencs 2010-05-04 09:14:39