Sql server 在SQLServer2008中如何在查询过程中不包含特定列

Sql server 在SQLServer2008中如何在查询过程中不包含特定列,sql-server,Sql Server,谢谢你的回复,不过我已经在使用动态字段了 例如: DECLARE @columns VARCHAR(8000) SELECT @columns = COALESCE(@columns + ',[' + cast(QuestionName as varchar) + ']', '[' + cast(QuestionName as varchar)+ ']') FROM Answer A INNER JOIN Question Q ON A.QuestionID = Q.QuestionID IN

谢谢你的回复,不过我已经在使用动态字段了

例如:

DECLARE @columns VARCHAR(8000)
SELECT @columns = COALESCE(@columns + ',[' + cast(QuestionName as varchar) + ']', '[' + cast(QuestionName as varchar)+ ']')
FROM Answer A 
INNER JOIN Question Q ON A.QuestionID = Q.QuestionID
INNER JOIN Customer C ON A.CustomerID = C.CustomerID
GROUP BY Q.QuestionName

SET @columns = '[CustomerID],' + @columns

DECLARE @query VARCHAR(8000)
SET @query = 'Some PIVOT query without aggregation'

EXECUTE(@query)
但我想在@columns中排列字段..我希望1个字段是第一个:

@columns = [f1],[f2],[f3].
我想要的是这样的:

@columns = [f2],[f1],[f3] : 
因为我的报告中有一个fetch data..是常量。。
并且应该放在开始或要显示的第一行。

您必须从表1中显式命名列,而不是使用SELECT*看看这个技巧:谢谢Nicky的回复,但我不知道要提取的字段数和字段名,因为这取决于用户输入。,哦..我已经在其他报告中试过了。。但是我想知道一个简单快捷的方法。。再次感谢您应该使用sql Dynamicque,请看一下这个。他使用动态sql生成枢轴和选择。由于它是dynamique,所以您可以始终想象有一个where cols不象f1,并将其自己添加到构造函数中