SQL Server数据透视不知道结果列名?
我有一张桌子,看起来像这样:
Month Site Val 2009-12 Microsoft 10 2009-11 Microsoft 12 2009-10 Microsoft 13 2009-12 Google 20 2009-11 Google 21 2009-10 Google 22 而且我想得到一个二维表,给我每个网站的月份“Val”,如: Month Microsoft Google 2009-12 10 20 2009-11 12 21 2009-10 13 22 但是抓到的是,我不知道可能在“站点”中的所有可能的值.如果出现一个新网站,我想在我的结果表中自动获取一个新的列. 我看到的所有代码示例都可以这样做,这需要我在查询文本中对“Microsoft和Google”进行硬编码. 没有办法让SQL Server 2008这样做没有这样的黑客? 注意:我需要能够运行这个作为从ASP.Net发送的查询,我不能做存储过程或其他类似的东西. 谢谢! 解决方法链接的示例使用动态SQL.不幸的是,当预先不知道输出列时,没有其他用于在SQL Server中进行转换的内置方法.如果数据不是太大,可能最简单的方法是从ASP.NET运行正常的行查询,并在应用程序代码中执行枢纽.如果数据非常大,则在首次查询可能的列值之后,必须动态生成SQL. 请注意,您实际上不需要编写生成动态SQL的SQL语句;您可以简单地在ASP.NET中生成SQL,这将很容易.只需不要忘记在生成的查询之前避免使用不同的Site值,并且不要忘记参数化通常没有关键字的SQL语句的任何部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |