连接多个列(在程序启动之前值未知)

时间:2014-09-22 16:19:52

标签: sql sql-server stored-procedures join

我正在使用SQL Server 2008,我有一项任务是制作一些报告,要求我使用表格对JOIN的某些数据进行排序。我正在为此写一个程序。看起来有点像

CREATE PROCEDURE getReport @ReportType int
AS
   DECLARE @DataToJoin table
  --DETAILS OMMITTED

  INSERT INTO @DataToJoin
  --DETAILS OMMITTED (sorting, fiddling with data)

  SELECT table.col1, table.col2, joined.col3
  FROM table
  JOIN @DataToJoin joined ON table.x=joined.x
GO

在有人告诉我@ReportType告诉我们有多少东西需要排序然后加入之前,一切似乎都很好。由于这些数据需要摆弄,因此从一开始就不能简单JOIN

如何处理多个JOIN的问题以返回一个表格?最初我想到了最后一个选择中的WHILE,它将在其中进行排序和加入,但似乎采用这种方法是行不通的:(然后我想到了另一个将保持连接列的表,但我可以不要声明具有动态列列表的表。

有关此问题的任何想法?任何帮助表示赞赏! :)

1 个答案:

答案 0 :(得分:0)

尝试构建动态sql:http://msdn.microsoft.com/en-us/library/ms188001(v=sql.100).aspx 通过这种方式,您可以创建一个包含所有表JOIN的sql,并以您需要的任何方式进行排序。