首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求评估!写以下SQL人员在各位眼中是个什么水平

2013-09-16 
求评价!写以下SQL人员在各位眼中是个什么水平?Select W_CKZB.*, Case When IsNull(CJYS_DDZB.YWBH,)

求评价!写以下SQL人员在各位眼中是个什么水平?
Select W_CKZB.*, Case When IsNull(CJYS_DDZB.YWBH,'') <> '' Then CJYS_DDZB.YWBH Else CJYS_DDGLB.YWBH End YWBH
 From W_CKZB
Left Join (Select ID, YWBH From CJYS_DDZB) As CJYS_DDZB On CJYS_DDZB.ID = W_CKZB.CYDID 
Left Join (
Select W_CKHWB.CKZBID, DDGLB.YWBH From W_CKHWB Inner Join (Select ID, YWBH From CJYS_DDGLB) As DDGLB On DDGLB.ID = W_CKHWB.DDGLBID 
Group by W_CKHWB.CKZBID, DDGLB.YWBH
) As CJYS_DDGLB On CJYS_DDGLB.CKZBID = W_CKZB.ID


不看数据表的关系,通过以上语句语法,各位评定下,写这个sql的人是个什么水平? 简单来说,是一个可以完成任务,可以要他加班的人,但是当不了一个高层次的程序员
[解决办法]
一般水平.
LZ想干嘛?
[解决办法]
求评估!写以下SQL人员在各位眼中是个什么水平
我也是这样的水平,看来是水平不怎么样啊!!!!
[解决办法]
你猜对了,常见的问题就是你觉得的这些问题
[解决办法]
建议LZ了解一下数据库性能优化方面的书..

当然,仅仅有技术不一定就能优化的,最好要结合一下业务逻辑进行分析和优化.
[解决办法]
每个人都是一步一步走过来的。
[解决办法]
当然没有快速的途径,我从数据库给几个个人意见,有些是工作中的总结,排名不分先后:
1、开发sql时,不要用面向过程的思想,比如游标、循环,除非你实在不会。
2、设计,多花点时间吧,这个真的太要命了。
3、注释,不多说了。
4、每个人肯定都由简单的sql开始学起的,但是一边写一边思考很重要,很多人为了完成任务,最终却因为性能过于低下,有些时候甚至无法部署,结果就是没有完成任务。得不偿失。
5、多和你觉得厉害的人交流,这个倒是快速路径。
6、有时候可以用空间换时间的方法来临时解决一些性能问题,比如把经常需要计算的东西,评估是否有必要预先或者定期存起来。


7、多看书,这个也不说。
8、心态,很多人觉得自己做了很多年“开发”已经很资深,我的很多建议他们根本就不想听,特别是听不懂的时候,但是连select into都可以写成select * from tb into #t这样的格式,我当时无语了。
9、编码的话,有一本书挺好的《sql语言艺术》,颠覆你的编程习惯。
10、多熟悉业务,多与人商量,特别在设计阶段。
11、练,我毕业的时候只听过存储过程,后来被迫写了过千个(1年时间),好不好我不说,最起码我会写了。

还有很多,其实也很少,上班求生存,下班求发展,你懂得。废话比较多,有没有用就看你自己了
[解决办法]
有经验,无水平的人
[解决办法]
Select W_CKZB.*, Case When IsNull(CJYS_DDZB.YWBH,'') <> '' Then CJYS_DDZB.YWBH Else CJYS_DDGLB.YWBH End YWBH  From W_CKZB
Left Join (Select ID, YWBH From CJYS_DDZB) As CJYS_DDZB On CJYS_DDZB.ID = W_CKZB.CYDID 
Left Join (
Select W_CKHWB.CKZBID, DDGLB.YWBH From W_CKHWB Inner Join (Select ID, YWBH From CJYS_DDGLB) As DDGLB On DDGLB.ID = W_CKHWB.DDGLBID 
Group by W_CKHWB.CKZBID, DDGLB.YWBH
) As CJYS_DDGLB On CJYS_DDGLB.CKZBID = W_CKZB.ID

红色字体可能是写错了吧?
还有关联的第二个表在select语句里只用到一个字段,关联第三个表根本没有用到字段,这样关联不知道是抄过来的,还是你给的代码不完整?


[解决办法]
这个不能说明一个人的水平,太片面了.
[解决办法]
sql水平比我高的人,^_^
[解决办法]
为完成任务写的吧
[解决办法]

引用:
当然没有快速的途径,我从数据库给几个个人意见,有些是工作中的总结,排名不分先后:
1、开发sql时,不要用面向过程的思想,比如游标、循环,除非你实在不会。
2、设计,多花点时间吧,这个真的太要命了。
3、注释,不多说了。
4、每个人肯定都由简单的sql开始学起的,但是一边写一边思考很重要,很多人为了完成任务,最终却因为性能过于低下,有些时候甚至无法部署,结果就是没有完成任务。得不偿失。
5、多和你觉得厉害的人交流,这个倒是快速路径。
6、有时候可以用空间换时间的方法来临时解决一些性能问题,比如把经常需要计算的东西,评估是否有必要预先或者定期存起来。
7、多看书,这个也不说。
8、心态,很多人觉得自己做了很多年“开发”已经很资深,我的很多建议他们根本就不想听,特别是听不懂的时候,但是连select into都可以写成select * from tb into #t这样的格式,我当时无语了。
9、编码的话,有一本书挺好的《sql语言艺术》,颠覆你的编程习惯。
10、多熟悉业务,多与人商量,特别在设计阶段。
11、练,我毕业的时候只听过存储过程,后来被迫写了过千个(1年时间),好不好我不说,最起码我会写了。

还有很多,其实也很少,上班求生存,下班求发展,你懂得。废话比较多,有没有用就看你自己了


第8、10、11条的确是必须的
[解决办法]
Select W_CKZB.*, Case When IsNull(CJYS_DDZB.YWBH,'') <> '' Then CJYS_DDZB.YWBH Else CJYS_DDGLB.YWBH End YWBH
  From W_CKZB
Left Join (Select ID, YWBH From CJYS_DDZB) As CJYS_DDZB On CJYS_DDZB.ID = W_CKZB.CYDID 


Left Join (
Select W_CKHWB.CKZBID, DDGLB.YWBH From W_CKHWB Inner Join (Select ID, YWBH From CJYS_DDGLB) As DDGLB On DDGLB.ID = W_CKHWB.DDGLBID 
Group by W_CKHWB.CKZBID, DDGLB.YWBH
) As CJYS_DDGLB On CJYS_DDGLB.CKZBID = W_CKZB.ID


上面的代码同等于下面的结果:

Select W_CKZB.*, CJYS_DDZB.YWBH
From W_CKZB
Left Join CJYS_DDZB On CJYS_DDZB.ID = W_CKZB.CYDID

 


但是在效率可能损失很多,这是由于团队里水平不均衡造的,难怪很多人说有时候数据变量那么慢啊.
刚进入开发对sql不熟悉,造成很以后维护比较难.
如果你是带一个小组或一个小团队,建议你要小组成员加强学习一下,这些都简单



[解决办法]
引用:
Select W_CKZB.*, Case When IsNull(CJYS_DDZB.YWBH,'') <> '' Then CJYS_DDZB.YWBH Else CJYS_DDGLB.YWBH End YWBH
 From W_CKZB
Left Join (Select ID, YWBH From CJYS_DDZB) As CJYS_DDZB On CJYS_DDZB.ID = W_CKZB.CYDID 
Left Join (
Select W_CKHWB.CKZBID, DDGLB.YWBH From W_CKHWB Inner Join (Select ID, YWBH From CJYS_DDGLB) As DDGLB On DDGLB.ID = W_CKHWB.DDGLBID 
Group by W_CKHWB.CKZBID, DDGLB.YWBH
) As CJYS_DDGLB On CJYS_DDGLB.CKZBID = W_CKZB.ID


不看数据表的关系,通过以上语句语法,各位评定下,写这个sql的人是个什么水平?

自己做,一定放心

热点排行