论坛首页 海阔天空论坛

[水帖]仲裁委员会第五个仲裁帖子

浏览 5148 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-27  
bigpanda 推荐的一本 SQL for smarties,介绍了很多用 SQL 表达复杂数据结构(tree, graph)的做法。

case when 是标准 SQL 语法吗?我知道 MS SQL Server 里面有。
0 请登录后投票
   发表时间:2006-10-27  
together 写道
lixigua 写道

功能当然是老掉牙的功能,但我也没看到什么好的一次解决方案。
不要告诉我用自己定义函数实现,一则自己定义函数无法通用,二则效率不高。

可以使用case when 来处理普通行列置换。
自定义函数,虽然无法通用。但也不失为一种方法。
复杂的行列置换,已经属于报表应用的范围。没有也不可能会有一个完整的一次性解决方案。


并不是说要解决通用的报表,该方法只是解决数据层的组织问题,并不"通用"解决展现问题。

使用函数方案:
  1)针对每个行列转换都需要一个行列转换函数。
  2)然后调用该函数实现。
使用试图生成方案:
  1)配置好视图关系,数据来源关系,直接生成sql脚本。
  2)然后直接写一个查询SQL实现






0 请登录后投票
   发表时间:2006-10-27  
因为这样的行列转换需求,一般都属于报表范围。
可以通过程序实现,也可以用数据库自身的存储过程/视图来实现。好像程序里用到的更多一些。
一般我会用两种方式:
方法一:用原生sql,拼case when。或者用原生sql创建多个临时表,进行join。
方法二:从数据库中取出数据,填充到报表中。

我说50%,对50%,是我个人的观点。确实不太好衡量的。看大家其他人的意见了。

另:case when 是标准的sql
0 请登录后投票
   发表时间:2006-10-27  

有一个倾向,对某个领域比较了解的人,会认为该话题帖子的技术含量不足。
论坛中讨论复杂SQL的帖子不多。ajoo提到过一些。
另外,后面这些相关讨论最好能够转移到对应的原帖子下面。


0 请登录后投票
   发表时间:2006-10-28  
1 开发语言vs软件工程
我觉得作者要表达的意思应该如下:更换语言所增加的生产力不如更换过程或在项目管理上下功夫。
敏捷版里从我到这里到现在的风气向来就是话题飘在云端的多,既然飘在云端的话题都可以成为精华,为什么这个就是隐藏呢?

2 行列转换
用字符流工具生成sql语句,我觉得有点意思。
case when方案不熟悉,也不知道最后解决方法是什么,所以无法进一步说了。
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics