|
|
1
8
http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html http://chiragrdarji.wordpress.com/2008/09/09/group-by-cube-rollup-and-sql-server-2005/ http://databases.about.com/od/sql/l/aacuberollup.htm http://www.adp-gmbh.ch/ora/sql/group_by/group_by_rollup.html http://msdn.microsoft.com/en-us/library/bb522495.aspx 基于利文的代码:
|
|
|
2
3
提前调整数据的形状简化了应用程序开发人员的工作,特别是如果他们所做的只是显示一个静态报表,而没有交互式的编辑、排序或分页——这种情况已经很常见了。 Lieven的解决方案(在为其他列插入空值的同时,分别选择列,然后检查其他列的空值)是这里唯一有效的解决方案。有点。
--除非您要使其为空的列已经有空值,在这种情况下,我们返回到0。再加一行。
现在再次运行查询。可怜的家伙。
Roux提出的汇总解决方案根本不起作用,至少在SQL Server中不起作用。事实上,它让事情更糟。
Piti的ROWNUM解决方案可能在Oracle中工作(我还没有尝试过,而且似乎缺少一个开头的括号),但是使用ROW_NUMBER()代替taint的等效SQL Server代码显然也不起作用,就像我的语法和speling一样。
生产
作为一名软件专业人士,你的工作是确保数十亿个1和0在正确的地点、正确的顺序、正确的时间排列。你知道细节很重要,通常是个别细节。 半个巨大的答案比没有答案更糟糕,因为它浪费了每个人的时间。所以。。。无意冒犯,因为意图是好的,但请至少测试你的“解决方案”,然后再发布为“解决方案”。 如果我不那么卑微,我会很完美的。甚至我也在测试。 |
|
3
2
迈克尔托德说这应该在客户端完成,但为了好玩,这是一个选择
|
|
|
4
1
可能是这样的:
说明: 首先从联合中选择选择组标题的记录。它按名称对结果进行排序。行号给出了顺序。 第二个选择从联合中选择组头的所有记录。它按名称对结果进行排序,行号给出顺序。 工会把所有的信息汇总起来。第二个select的ROWNUM+1确保头的记录(从第一个select开始)在详细记录之前排序。 现在。。。你需要做什么,我没有恢复那么多的SQL来知道怎么做。。。当大小写或日期为“”时,将“”作为名称放在主选择中(使用case/swich操作)。这里需要一些帮助:)。 正如观察到的那样,在所提供的SQL中,ROWNUM是一个特殊的列,它为select提供行号(例如,请参见Oracle)。 查询只是作为原则显示的,我不能百分之百确定它是否有效。 更新: ... 这是一个解决方案草图。但我仍然认为这是一个格式化问题,而不是SQL问题。 |
|
|
5
1
您可以使用两个查询,然后在应用程序代码中分组/格式化。 第一个查询
第二个查询
应用程序代码
生成的组数组将如下所示:;
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
|
anandyn02 · 按名称连接两个表并分组 2 年前 |
|
|
David Robie · 删除以XXX开头并符合条件的列 2 年前 |
|
|
swat · 在同一列上选择SQL语句 2 年前 |
|
Santi · Shadcn/ui选择-当用户选择项目时更改状态 2 年前 |