在数据库中使用一组数字而不创建临时表

时间:2010-05-03 16:17:55

标签: sql sql-server-2008

我在数据库中有一组数字和一个表,其中包含id(主键)和text(非空)列。我想创建一个查询,返回集合中的所有数字和表格中的相关文本。遗憾的是,并非所有数字都存在于数据库的id列中,因此这不起作用:

select id, text
from table
where id in (<set of numbers>)

对于不存在的ID,最好将null作为查询中的文本返回。

有没有办法在没有先从数据库中的集合创建临时表的情况下生成所需的输出?

正在使用的数据库引擎是Microsoft SQL Server 2008 SP1,但我对任何数据库引擎的解决方案都感兴趣。

1 个答案:

答案 0 :(得分:0)

解决方案具有高度数据库特定性

  • mysql没有办法在没有临时表的情况下执行上述操作
  • oracle可以通过递归查询(详细信息here
  • 非常有效地执行请求
  • ms sql可以使用递归查询来完成,但我不知道效率如何

检查链接的文章,看看MS SQL 2008支持哪些查询以及它们对它们的执行情况。