Sql 连接多个列(在过程开始之前,值未知)

Sql 连接多个列(在过程开始之前,值未知),sql,sql-server,stored-procedures,join,Sql,Sql Server,Stored Procedures,Join,我使用的是SQLServer2008,我的任务是生成一些报告,这些报告需要我对一些数据进行排序,然后与一个表联接。我正在为此编写一个程序。看起来有点像 CREATE PROCEDURE getReport @ReportType int AS DECLARE @DataToJoin table --DETAILS OMMITTED INSERT INTO @DataToJoin --DETAILS OMMITTED (sorting, fiddling with data)

我使用的是SQLServer2008,我的任务是生成一些报告,这些报告需要我对一些数据进行排序,然后与一个表联接。我正在为此编写一个程序。看起来有点像

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告诉我们需要排序和加入多少内容。因为这些数据需要处理,所以从一开始就不能是简单的连接

我应该如何处理多个连接返回一个表的问题?起初,我考虑在最后一个select中进行排序和联接,但似乎采用这种方法是行不通的:然后,我考虑了另一个包含联接列的表,但我不能声明包含动态列列表的表

对那件事有什么想法吗?感谢您的帮助!:

尝试构建动态sql:
通过这种方式,您可以创建一个sql,将所有表连接在一起,并按照您需要的任何方式进行排序。

它是列,而不是列,一个l就足够了!是的,谢谢,对不起:P