SQL交叉表的应用与实现 · 编程学习·编程技术资料网
2009-05-15 22:37
静态的语句:
问题的提出:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 从上面我们可以看出,得到的结果就是要实现一个交叉表,要解决以上问题,最简单的方法就是用CASE函数。让我们先来看看CASE函数的释义: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 由此,我们得出以上问题的解法: ![]() ![]() ![]() ![]() 以上只是个简单的示例,只要我们理解的CASE函数的正确用法,要写出复杂的交叉表,也是轻而易举的事了。 动态的SQL语句
在前一篇SQL交叉表的实现 http://www.cnblogs.com/bonny.wong/archive/2005/01/22/95911.html 中,我举了一个静态实现SQL交叉表的简单例子,结果遭到几位朋友的批评,不得已,只有厚着脸皮,重新写了一个动态实现交叉表的代码,以答谢各位热心的观众
![]() 示例仍取前一篇中之简单例子以便说明,解决代码如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 这里需注意,第一句select不可以和第二句select合并,不信你可以试试,原因吗?暂时不说,你自己也可以想想。 ![]() 在第三个slect语句中我用了left函数去掉一个“,”并在后面又加了一个“,”,原因是使代码可以更清晰。 代码经我测试已无误。 |