动态透视查询,无需将查询存储为字符串

2024-04-16

我完全熟悉链接中用于执行动态数据透视查询的以下方法。是否有另一种方法可以执行动态透视,而无需将查询存储为字符串并在其中插入列字符串?

http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx


简短回答: no.

长答案:

嗯,那还是no。但我会尝试解释原因。截至目前,当您运行查询时,数据库引擎要求了解查询将返回的结果集结构(列数、列名、数据类型等)。因此,当你向数据库询问数据时,你必须定义结果集的结构。想一想:您是否曾经运行过一个事先不知道结果集结构的查询?

即使您这样做,这也适用select *,这只是一个糖语法。最后,返回的结构是“该表中的所有列”。

通过组装字符串,您可以在请求结果集之前动态生成所需的结构。这就是它起作用的原因。

最后,您应该意识到动态组装字符串可以理论上和潜在地(虽然不太可能)给你一个包含无限列的结果集。当然,这是不可能的,而且会失败,但我相信您已经理解其中的含义。

Update

我发现了这一点,这强化了它不起作用的原因。

Here http://social.msdn.microsoft.com/Forums/en-us/sqlintegrationservices/thread/b69484d7-d314-449e-8be3-af68e9e5ec8f:

SSIS 依赖于提前了解数据流的元数据以及 动态枢轴(这就是您所追求的)与 那。

我会继续在这里查找和添加。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态透视查询,无需将查询存储为字符串 的相关文章

随机推荐