5年前给我职业生涯带来重大影响力的SQL语句(您SQL到了什么境界了)

从接触dos, Foxbase 开始写管理类程序,期间也遇到了几个高人,学习提高了很多,然后接触了 sqlserver, oracle
也看了很多很多书,对自己的SQL语句及写程序水平还是很有信心,日常生活中也难遇到能PK交流的同事或者项目。
这样的日子过了好几年,5-6年前,在上海遇到了一个NEC的外包项目,真的是让我大开眼界啊。没见过珠穆朗玛不
知道山有多高,没见过蒙古大草原,你不知道地有多大一样。

平时看再多的书,也难遇到这样巧妙的SQL语句。废话少说直接看图

 

以前,很少见到,将查询的结果又看成是另一个虚拟的表,然后再进行关联,再进行虚拟化成另一个表等,
自从看了这个SQL语句后,我身心大有提高了,一下子知道了自己有多么的无知,真的感谢,让我见到了
这个SQL语句的机会,让我的SQL语句水平有个质的提高,我知道接下来,我应该如何写SQL语句了,什
么才叫SQL大师了。

有时候,我们需要写很多C#代码才能做出来的功能,用一个比较强悍的SQL语句就可以搞定了,当然
不能走极端,那对数据库服务器的压力会太大了,有可能会导致服务器崩溃,系统运行过缓慢等,还会
导致,sql语句过于复杂,你不好维护,将来除了你没人能看懂这个sql语句,很有可能连你自己也看不
懂了。

用过多复杂的sql语句,把一系列处理操作都处理了,还有可能会导致不好调试等一些列问题发生,
例如c#.net + oracle 模式下,那sql语句的调试,就变得麻烦了。只是建议你不要走任何极端就可以了。

以前一直是学习别人的知识,现在也适当的传播一下从别人那里学来的知识,希望对大家能有所帮助。

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2009-05-02 21:52 不仅仅是通用权限设计 阅读(4767) 评论(137) 编辑 收藏

#38楼  回复 引用 查看   

从LZ的回答中看出来了,LZ是个厚道人。
2009-05-02 23:41 | WCF技术联盟       

#39楼  回复 引用   

貌视很普通吧

#40楼  回复 引用 查看   

其实是很容易的呢
2009-05-02 23:50 | Jeffrey Zhao       

#41楼  回复 引用   

看到这个,基本无语~
怎么上的首页啊?是不是最近缺少争论焦点啊 ?

#42楼  回复 引用 查看   

哈哈,大家的回复很搞笑,还好不是在中午吃饭的时候
2009-05-02 23:57 | 私家侦探       

#43楼  回复 引用   

除了日本语看不太懂,没看出来有多大新意。
不过对大部分应届生应该还是有学习的必要,实际工作中比这个简单的语句当然有很多,但比这有难度的也不在少数。
要说境界,能写出这个语句说明这个人确实是有工作经验了,离大师应该还有点距离吧
2009-05-03 00:12 | lotsbug[0][未注册用户]

#44楼  回复 引用 查看   

建议看看《SQL查询凡人入门》。
2009-05-03 00:30 | Nicholas Yuen       

#45楼  回复 引用   

好像没啥特别的
这大半年都写这样的恶心脚本来着,崩溃ing
2009-05-03 00:35 | Tony Chou[未注册用户]

#46楼  回复 引用 查看   

经典啊,这个是面试毕业生的经典题目
2009-05-03 00:50 | love001       

#47楼  回复 引用   

开始一看楼主的的开篇形容,打开的电影都没看,就先想一睹为快,看完了,有这么种感想:这个学过数据库的都想得到这样嵌套的吧,如果硬是要说精妙,真还有些不认同,但楼主写出来分享,辛苦啦!!!!!呵呵,这么说不介意吧
2009-05-03 00:55 | disadansa[未注册用户]

#48楼  回复 引用 查看   

非常失望的人路过……
2009-05-03 01:07 | 小李刀刀       

#49楼[楼主]  回复 引用 查看   

看来,我是井底之蛙了,没见过世面了,多向大家学习,
我天天写管理类软件,不知道谁能教我几下,我应该怎么写?
什么样的sql语句是大家经常写的,算是比较厉害的,不妨贴出来看看,
大家值得学习的地方,我也虚心学习,开拓一下眼界。
2009-05-03 01:23 | 吉日嘎拉       

#50楼  回复 引用   

呵呵, 仿佛看到了5年前的自己。
不知道你现在工资多少?
2009-05-03 01:29 | 寂寞高手1[未注册用户]

#51楼  回复 引用   

我做过很多日本人的项目, 日本人确实有把某个东西做到极致的能力。
比如拉面,茶道,花道。
不过sql已经进入生命周期的衰竭期,呵呵,要多注意其他方面的技术。否则随着年龄的增长, 最终会被淘汰的。

我也做过权限关系,和工作流,你是用sql来实现的吗?
2009-05-03 01:34 | 寂寞高手1[未注册用户]

#52楼[楼主]  回复 引用 查看   

我工资大概有5k以上吧,不是很多,
我不极端的那种,最近几年很少写过于复杂的sql语句,
我一般是按面向对象,面向服务、面向接口的理念编写程序,
不过多依赖与数据库技术及SQL语句。
主要研究多系统的整合思想、框架及对大规模软件开发等有兴趣。
经常研究通用的权限设计,通用的开放性管理平台、
能反反复复利用的通用组件程序,通用的设计思想等等。
2009-05-03 01:35 | 吉日嘎拉       

#53楼[楼主]  回复 引用 查看   

其实我也傻瓜了,大家觉得这个很简单,很菜鸟,就能表明你的SQL能力已经
是很高的境界了,大家继续丢砖头啊。

我也赞赏“二十一世纪,电子商务!!电子商务!!! ”
的确是的,SQL语句啥的,是10年前的东西了,的确是到了衰退期了,
前几年,我就喜欢研究如何让程序兼容多种数据库,
已不是主流了,大家需要与时俱进了。
2009-05-03 01:44 | 吉日嘎拉       

#54楼  回复 引用   

5年经验,这样的工资偏低了。杭州有阿里巴巴,这么好的资源为什么不利用呢?
阿里软件未来的前途应该会很光明的。
我建议你去阿里面试, 然后很快就可以知道自己的差距有多大了。
2009-05-03 01:49 | 寂寞高手1[未注册用户]

#55楼  回复 引用 查看   

首先顶一下,可能自己在sql方面太菜,能否解释一下为什么这么些,这么写的好处在哪里,速度快吗?
2009-05-03 01:58 | zucky       

#56楼[楼主]  回复 引用 查看   

没有10k-20k,我是懒得跳槽了,我对工资已经麻木了。
阿里软件用的都是java技术,我研究的都是.net技术,跟他们没有共同语言。
年薪想突破15万没那么容易,15万以下就不折腾了。

假如来面试你的人问的问题根本不是你在思考的问题,有时候来面试的人是
小菜鸟一个,也很搞笑的,有时候也说不出来感觉,想有点儿水平也需要有
点儿水平的人来面试才可以,有时候面试别人也很难,能面试出他的水平来,
也需要一个被引导和进入状态的。

我也就会写点儿程序而已,想想也没啥大不了的,好好安心工作就可以了。
当个执着的驴。
2009-05-03 02:01 | 吉日嘎拉       

#57楼[楼主]  回复 引用 查看   

答复55楼:
不是为了快还是什么的,就是第一次见到,原来SQL语句还可以这么写,
以前从来没见过,SQL语句还可以这么写,知道了别人怎么写,自己还可以
举一反三,可以写出更多更好的SQL语句了。
起一个开拓思维的作用,并不是这个SQL语句,性能有多高,或者写得多
简洁等上。
2009-05-03 02:04 | 吉日嘎拉       

#58楼  回复 引用 查看   

稍微正常的的业务系统类似这种程度的SQL是非常常见的,比这更复杂的也很多。

况且这个SQL本身写的也非常有问题,平白无故的多套了一个Select * from,
事实上里面一层就可以搞定的事情。。

搞来搞去3张表,会写Case when 就是高手了?。。。too simple
2009-05-03 02:05 | 假正经哥哥       

#59楼  回复 引用   

好强大的贴子

就象当初学ASP
刚学会用for in一样的惊为天人...
2009-05-03 06:19 | sam251[未注册用户]

#60楼  回复 引用   

普通,我们报表经常都是这样的,有的比这复杂多了...
一个查询四五百行 了...
2009-05-03 08:36 | feiyang[未注册用户]

#61楼  回复 引用 查看   

虽然不是单条sql语句的那么简单,不过也不算特别复杂的那种,老实说,我毕业两年,一年前就写过差不多的。我只想说,这样的sql绝对算不上“大湿”级别的。看了楼主首页的两篇文章了,建议以后不要放首页了,或许真的是你太看得起这个sql了。

(ps:我就留真名,你咬我呀~)
2009-05-03 08:42 | ︶ㄣ木べ头       

#62楼  回复 引用 查看   

再说一句,看来做外包真的是学不到什么很高深的东西呀
2009-05-03 08:43 | ︶ㄣ木べ头       

#63楼  回复 引用   

这是最基本的sql语法啊,如果觉得这个很高深,那只能说在见到这个语句之前,你没看过书!或者说你只会写 select * from tblAbc这类语句。
2009-05-03 08:54 | ccccccc[未注册用户]

#64楼  回复 引用 查看   

外包项目里没什么高深的玩意儿。及早规划好自己的职业发展方向为上
2009-05-03 09:17 | 灰上小楼       

#65楼  回复 引用 查看   

怎么大家都极尽讽刺之能事呢?楼主五年前遇到这样的语句觉得很神奇,也不足为怪吧。楼主的意思是当年觉得自己很肤浅,是井底之蛙,很多人都有这样的经历吧。
2009-05-03 09:19 | 在别处       

#66楼  回复 引用   

这个SQL确实不难 我今年才毕业 我也是杭州的 ,现在在一家单位实习,这SQL语句一步步能看得懂
PS:楼主不要生气 我估计那些人是冲你说这样能称上SQL大师才来说你风凉话的,因为我也觉得这样写算不上SQL大师。至于那些骂人的 就直接无视好了 中国的程序员大多是很傲慢的 自以为是 所以碰到一些工资比他们高的人 觉得很委屈...自以为自己是做技术的 工资应该比一般人高很多..... 不像外国 程序员是个很尊敬的职称 编到60岁都很正常
2009-05-03 09:27 | 死亡旋律[未注册用户]

#67楼  回复 引用   

外包很多时候的数据库操作本就不深:数据库要靠自己去钻的,很多人程序写了近六年可能除了常规的增删查改其它都不会-索引、视图等等东西都靠程序去完成;程序和数据库双修的实际上很多时候非常的少,不然何来DBA的生存空间-就是因为大多数开发者或网管的数据库技术惨不忍睹。
2009-05-03 09:28 | LeslieSheng

#68楼  回复 引用   

看不出高深来
2009-05-03 10:29 | winlinux[未注册用户]

#69楼  回复 引用 查看   

感觉写excel里很整齐的说……


同时你把人家的项目表爆出来,不太好吧?这些也算是机密吧…………大哥……
2009-05-03 10:43 | 杜建宇       

#70楼  回复 引用 查看   

呵呵,SQL SCRIPT 的格式化写法。

鬼子干事是很认真的,不过,浪费时间也是很厉害的。

#71楼  回复 引用 查看   

--引用--------------------------------------------------
置身珠海,学习与奋斗: 呵呵,SQL SCRIPT 的格式化写法。

鬼子干事是很认真的,不过,浪费时间也是很厉害的。
--------------------------------------------------------


石门思想
2009-05-03 10:50 | Nicholas Yuen       

#72楼  回复 引用 查看   

--引用--------------------------------------------------
吉日嘎拉: 没有10k-20k,我是懒得跳槽了,我对工资已经麻木了。

阿里软件用的都是java技术,我研究的都是.net技术,跟他们没有共同语言。

年薪想突破15万没那么容易,15万以下就不折腾了。



假如来面试你的人问的问题根本不是你在思考的问题,有时候来面试的人是

小菜鸟一个,也很搞笑的,有时候也说不出来感觉,想有点儿水平也需要有

点儿水平的人来面试才可以,有时候面试别人也很难,能面试出他的水平来,

也需要一个被引导和进入状态的。



我也就会写点儿程序而已,想想也没啥大不了的,好好安心工作就可以了。

当个执着的驴。
--------------------------------------------------------

同感……
2009-05-03 11:11 | 杜建宇       

#73楼[楼主]  回复 引用 查看   

是啊,日本鬼子真的很认真,连SQL语句的排版都是非常有将就的,
这之前我看过超过100个人的程序,看过几十本SQL的书,也没见过
排版如此有将就的。

承认一下别人的好,没啥,又不是让大家承认我有多少厉害,就算不承认,
也不要贬低人家,这样的心态能学到啥呀。

首页的文章也持续看了几年了,留下深刻印象的也不是非常非常的多。
难道这里来浏览的,都是大师了,有那么多无聊的大事天天看新闻?
我也服了,最起码别说人家风凉话。

中国人到美国看到比人富裕,与日本人在美国看到别人富裕的心态完全是
两样,我们需要适当的修改。

中国人都讲装谦虚,装深沉,装个屁啊,有东西就拿出来别光说,你说这
个SQL不行,那你把行SQL的贴出来,让大家开开眼界,讲讲里面有啥学问。

这是5年前见过的SQL,这之前我也学了5年的SQL语句,你就凭良心自己
看人家的SQL语句,然后再看看我们自己写的SQL,自己的项目里找找看,
然后再评论都不迟。拿自己手上的,再跟这个再比较,然后贴出来,再藐视
别人,让我们也学到点儿东西。
2009-05-03 11:14 | 吉日嘎拉       

#74楼[楼主]  回复 引用 查看   

你们再 给我抛砖头,我也给你们看了一个SQL语句,多多少少也看到东西了,
你光在这里骂我,啥个实在的东西也没贴出来,不觉得丢人嘛?
不是在抹杀我的积极性嘛?

本来我是奔着分享,PK技术来的,别光说风凉话,啥实际的也不拿出来,
我们是来切磋武艺的,不是来搞口水仗的,大家把自己觉得好的SQL语句贴
出来再贬低我都来得及。
2009-05-03 11:17 | 吉日嘎拉       

#75楼[楼主]  回复 引用 查看   

最近几年在宁波时,我被一个高手算是骂过,但是他说话比我有艺术很多,
我自己听了人家的思路,人家的想法,对接口的认识,对面向服务的编程,
对面向对象的编程,对工作量的分析,对软件工程的意识提高了很多很多,有时候真希望能
被牛人骂一下,深刻的提高提高,反省反省,被骂过后,当场可能不能理
解,过段时间后,都能听得进去,都能吸收别人的精华,再提高自己。

欢迎大家丢砖头,真是的,有啥呀。
2009-05-03 11:21 | 吉日嘎拉       

#76楼[楼主]  回复 引用 查看   

说那些风凉话的家伙,看看你的 blog里都写了啥?你都有啥思想,
你给大家带来了什么?也要想想,再说都不迟的。
2009-05-03 11:23 | 吉日嘎拉       

#77楼  回复 引用 查看   

--引用--------------------------------------------------
吉日嘎拉: 说那些风凉话的家伙,看看你的 blog里都写了啥?你都有啥思想,
你给大家带来了什么?也要想想,再说都不迟的。
--------------------------------------------------------

莫生气……中国软件业就这样的……浮躁的很……

到处是拿来主义……

2009-05-03 11:29 | 杜建宇       

#78楼  回复 引用   

楼主,你这地方的评论算好好的了。中国互联网的评论之风就是如此。
不信,你去网易新闻的评论区看看。
不论新闻是什么,总有一大堆的人在骂。不知道骂些什么。
还有泡泡网的,那小编们真是造孽的很,天天被问候女性亲戚。
有时候看着特无语。
2009-05-03 11:53 | 汉子进墙[未注册用户]

#79楼  回复 引用 查看   

就看到一个子查询,不知道里面还有啥玄机?
2009-05-03 12:32 | Silent Void       

#80楼  回复 引用 查看   

这样的SQL语句如何维护?
2009-05-03 12:39 | 恋恋风尘       

#81楼  回复 引用 查看   

拜读留字,从楼主的贴子到是没看出什么,但是从评论中到是看到不少东西
2009-05-03 12:59 | 後生哥哥       

#82楼  回复 引用 查看   

不要放首页,看不懂火星字
2009-05-03 13:58 | 牛啊牛       

#83楼  回复 引用 查看   

楼主是宁波的吧?
10年前我在宁波常驻(出差)的时候,写过这样的SQL语句。
不复杂啊!
我们那个语句比这长(不是说复杂哦)15倍!
小弟(请允许我这样叫你一下,我可能比你大一点吧),以后,我们都不要PK了,好不好?

给您参考一下:
我们的技术总监,8岁会自己制作土炸药,10岁上少年科技大学(不要被某个新闻说什么少年神童回家养猪之类极端例子的迷惑,他们大部分的同学,师兄师弟都不是我们这阶层的人所能普通接触的)。在asp.net没出来之前,就已经自己开发了一套类似viewstate的东西,在工作流概念刚刚出来的时候,就已经开发出了类似于目前WF里面的许多"节点"(当时我们叫法)。给北京大学教授讲过Oracle核心,把HP公司的资深顾问当作婴儿一样骂(对,是骂,当时我在场):“你这个中型机怎么这样做的系统方案,来,我来教你!” 我跟了他6年,所有的年轻张狂都被他磨光了,自剩下目前的深深自卑!
目前他在哪里?对了,秘密部门!
2009-05-03 14:03 | 南疯       

#84楼[楼主]  回复 引用 查看   

哎呀,怎么当时没有超过微软,
现在大家都用微软的.net,工作流。

看来差点儿,微软的.net被我们国人超越了。
真的是好可惜啊,说不定今天早应该是我们国人的天下了,
可惜啊,我们现在到处用洋鬼子的技术,哎。
2009-05-03 14:50 | 吉日嘎拉       

#85楼  回复 引用 查看   

这样SQL很少见。。。
长见识了。。。
2009-05-03 14:50 | JinweiLee       

#86楼[楼主]  回复 引用 查看   

到现在也没几个成熟的国产数据库,能拿出来叫卖,我知道的
有很少几个国产的数据库产品,我们真的是花太多冤枉的钱,
买oracle, sqlserver了,真的早日希望国产的数据库能打败
Oracle, 还是别骂人家了,把我们的东西早点儿拿出来吧,让
我们也开开眼界。

空口说,都容易,拿出东西来,就不容易了,按以上评论来讲
我们国内的软件开发技术,应该是世界一流了。
2009-05-03 14:53 | 吉日嘎拉       

#87楼[楼主]  回复 引用 查看   

还真没听说过,哪个国人开发了什么语言,很流行的,
若没搞错,我倒是知道一个人本小鬼子开发了一个ruby的语言啥的,
很流行什么的,是不是国人的宣传力度不行,把人才都埋没了,
或者是一直在保持低调?稳重?
2009-05-03 14:56 | 吉日嘎拉       

#88楼[楼主]  回复 引用 查看   

我比较喜欢有话就说,有屁就放的,有东西拿出来,空口无凭,
也没见过谁写的 sql语句排版这么好的这么严谨的,实话讲了吧。
2009-05-03 14:58 | 吉日嘎拉       

#89楼[楼主]  回复 引用 查看   

换句话讲,搞个博客园有啥难啊?但是真做好容易嘛?
让你来开发一个博客园,是不是1个月就可以了?
搞个操作系统有啥难?是不是1年就可以了?
2009-05-03 15:00 | 吉日嘎拉       

#90楼[楼主]  回复 引用 查看   

谁觉得谁写的sql更厉害,更能让大家开眼界,学到知识,
你就贴出来,让大家学习提高一下,不要在这里灭我的积极性。
真觉得有些无耻,那你早为什么不发表,让大家来学习一下?
或者跟我讲,早就发表过了,别让我再发表首页了,也可以嘛。
2009-05-03 15:02 | 吉日嘎拉       

#91楼  回复 引用 查看   

看了留言,感触良多.
2009-05-03 15:43 | 一人行       

#92楼  回复 引用   

给楼主出个题目:
假设一个表中有很商品类别,每个类别下面又有很多小类(即大类,小类总共有两级),用一个sql语句把每个大类里价格排名前5名的小类找出来.

这个是很实用的一个功能,但在看到一个同事写出来之前,我一直以为不能用一句简单的sql实现
2009-05-03 16:55 | li_tttt

#93楼  回复 引用   

怎么说呢?确实排版排得很好。不过复制到代码里还要自己删除掉说明性文本,因为没有加注释符。确实很有日本人的风格。

楼主不要认为大家都在说风凉话...因为这真的是很简单的SQL语句,离大家公认的大师境界还是有距离的。唯一的就是排版不错,这方面我赞一个。

我对数据库也不太了解,但大概知道在设计SQL语句的时候,有“非”的Where子句都是要尽量避免的。譬如说,你的那个<>可以写成 xx<aa OR xx>aa。还有,尽量给可空字段设置默认值,从而能够避免"<> NULL"这样的语句。这样,再搭配设计良好的索引,才能写出性能良好的查询语句。否则,你的每一个<>就是一个全表扫描。最后,如果该提出来成为视图的就提出来,这样还能进一步利用视图索引提升性能。当然我说的是SQL Server,其他的数据库我不知道。

坐在钱塘江边的落地窗前,看着窗外的碧波粼粼回的这个帖子。有些东西都是凭好久前的记忆随手写的,有什么说错的大家见谅,呵呵。在此,祝愿所有在杭州和不在杭州的兄弟们,节日愉快!
2009-05-03 17:11 | 路人丙[未注册用户]

#94楼[楼主]  回复 引用 查看   

我数据库懂得也不多,还没用过DB2,
平时也就用用,Oracle,SqlServer, MySQL, Access 等而已。
2009-05-03 17:23 | 吉日嘎拉       

#95楼  回复 引用 查看   

看了楼主留言,感觉楼主很厚道,
不过这条sql语句确实没啥特别的。
真搞不懂楼主为啥说“看过几十本SQL的书”。
2009-05-03 17:37 | 澍可       

#96楼  回复 引用 查看   

楼主认为这个SQL语句精妙,关键它使用了一个楼主以前从未见过的语法。
大家认为这个SQL语句一般般,关键是大家以前知道了这个语法。
语法,其实也就一层窗户纸,捅破了就明白了。


以前不知道这个语法的,别往心里去;早就知道了这个语法的,也没什么好得意的。
2009-05-03 18:52 | 周强       

#97楼  回复 引用   

您老干了这么多年,才发现?
很多学习sql不到半年的人都知道
2009-05-03 19:18 | xl[未注册用户]

#98楼  回复 引用 查看   

--引用--------------------------------------------------
周强: 楼主认为这个SQL语句精妙,关键它使用了一个楼主以前从未见过的语法。
大家认为这个SQL语句一般般,关键是大家以前知道了这个语法。
语法,其实也就一层窗户纸,捅破了就明白了。


以前不知道这个语法的,别往心里去;早就知道了这个语法的,也没什么好得意的。
--------------------------------------------------------
在理,这种写法在现在确实很多了
2009-05-03 19:34 | 风吹柳絮非       

#99楼  回复 引用 查看   

的确很简单的SQL,嵌套子查询+case when语句+整齐的排版,
说实话没有多少精妙的东西。

实话实说,呵呵,不要见怪
2009-05-03 19:48 | 代码乱了       

#100楼  回复 引用 查看   

@路人丙
做人当如路人丙~~~~
2009-05-03 21:44 | zhh007's Bolg       

#101楼  回复 引用 查看   

建议博客园禁止未注册用户回帖

看看这帮人回的都是什么玩意

这条SQL至少有两点不错:

1,case when then end语句的运用
2,严格的排版,便于阅读

建议:
1,把子查询换成自描述性强的CTE

LZ说的是5年前有重大影响力,又不是现在,不知道回帖的人有没有看标题

5年前我还在上高中呢,呵呵

LZ有空可以查一下比较酷的SQL语句,比如快速插入10000条数据,SQL字符串标识符拆分之类的语句
2009-05-03 23:16 | C Ser       

#102楼[楼主]  回复 引用 查看   

说坏的人很多,说好的人少,
那么多说坏的人,屁个SQL语句也没写出来给大家看,就知道发牢骚,
贬低别人,我在这里鄙视这些人,哈哈,你正要接着发牢骚,别生气啊。
2009-05-03 23:29 | 吉日嘎拉       

#103楼[楼主]  回复 引用 查看   

就感觉有些仇富心态一样的,看不过去别人的好。
10来年前,我上大学时,我们大家挤在篮球框下,拼命抢篮球,投篮球,
同一个大学校园子里的韩国留学生,就讲配合,大家球传来传去,玩得很开心。

自从看过同一个校园里韩国人打篮球,我就知道我们跟韩国的差距了,
学习了软件行业,知道了我们跟美国人的差距,啥都比别人落后啊,
做了日本外包,知道了我们敬业精神跟日本的差距有多大。
看国内大企业都买SAP后,我知道了在中国搞管理类软件都没啥前途了,
我们自己生产的软件到处是Bug,粗制滥造,我们自己用户都对自己的软件产品没信心。

有时候也稍微觉得悲哀,天天以学习微软的那些新东西为乐趣,有啥呀?
出了个啥新东西,活宝贝一样跟风,学到了啥了,觉得很了不起一样,
是别人作出来的,我们用人家的东西而已,给别人当测试,试验而已。

就说代码生成器吧,也都用什么老外的啥啥的,也不支持国内的代码生成器,
动软啥的,多支持一下,我也就不说啥了,我们自己做出了啥出来了?
说得不好听一点儿,都偷别人的东西,用盗版,真用钱去买吧,你舍得吗?
我们得想着,自己也能做出点儿啥来,多向别人虚心学习,不管他是日本还是
韩国,以前我们开发游戏也开发不过韩国人吧?那么小一个国家也干不过。
2009-05-03 23:38 | 吉日嘎拉       

#104楼[楼主]  回复 引用 查看   

若是类似开发动软代码生成器的人来骂我几下,
或者开发博客园的人来骂我几下,我也心甘了,人家是做出了啥东西了,有批评的资格。

一个屁点儿小孩也来教育我,我就有些不开心了,你懂啥?你做出了啥了?
2009-05-03 23:43 | 吉日嘎拉       

#105楼  回复 引用   

我不说风凉话。只想请楼主以后这样的文章别往首页塞了。对五年前影响你的东西,不管它当时是不是真的很先进很牛B,现在它已经司空见惯了、过时了、落伍了、或者淘汰了,总而言之不再配得上“重大影响力”了。

博客园不是怀旧的地方,要不我们大家都去搬八年前、十年前“震撼我”的东西来放,博客园就没什么意思了。

#106楼[楼主]  回复 引用 查看   

真的被你雷倒,那请你把,你现在认为比较新颖的,发布上来吧,
算是我求求你了,让大家学习一下,算是我恳求你了,跪求中啊。
别光装神仙,不念经啊兄弟。


2009-05-04 01:29 | 吉日嘎拉       

#107楼[楼主]  回复 引用 查看   

10多年前就有了Oracle,难道他现在不流行嘛?
大家都会用Oracle了嘛?
2009-05-04 01:45 | 吉日嘎拉       

#108楼  回复 引用 查看   

楼主也是做对日外包的吧?如果是的话,别做太久啊!做外包不利于智力的发展!
2009-05-04 08:26 | 朱述禄       

#109楼  回复 引用 查看   

说实话,这种语句,我们这每天都要写n多。
楼主5年才这种水平,要么就是没正式用过数据库,要么就是水平太次了。
2009-05-04 09:07 | 笨笨的考拉熊       

#110楼  回复 引用 查看   

奇怪,这有什么牛的?不就是语句长一点嘛,难道你们做外包的只会select * from t?不就是一个子查询加上一个case判断吗?你看看我的《程序员的SQL金典》,比这个复杂的SQL语句有的是。同意108楼的“别做太久啊!做外包不利于智力的发展! ”
2009-05-04 09:30 | CowNew开源团队       

#111楼  回复 引用 查看   

如果是我五年前看到这个语句的话,实在是惊为天人。。。。。但楼主能记这么长时间实在......

我也分享个我在使用SQL 2005之后惊为天人的句子吧,对于现在来说也许很容易写出,但是对刚刚2000转2005的人来说,是个解决问题的好方法

select * from A
where a1=isnull(@a1,'')
and a2=isnull(@a2,'')
a3=isnull(@a3,0)

虽然只是一个简单的isnull但当时对我的震撼挺大,很多原来要case when或在逻辑层、存储过程中拼接语句的问题或使用IF来判断的事,这这么解决了。
2009-05-04 09:39 | 重典       

#112楼  回复 引用   

在sql cocookie 一书的最后一章,有一个跟这类似。因为没有讲语境,所以许多人觉得简单。但是其实我觉得许多说简单的人,也未必一定能解决这个问题。
2009-05-04 09:58 | lookmao[未注册用户]

#113楼  回复 引用   

我大学的时候就这么写!
2009-05-04 10:02 | 飘过[未注册用户]

#114楼  回复 引用   

update df_fjmcjdltz
set bsdl_ygz=isnull(bsdl_ygz,0)+isnull(phbyq.ygbsc,0),bsdl_wg=isnull(bsdl_wg,0)+isnull(phbyq.wgbsc,0)
from
(select a.byqbh, min(a.jldh) as phjld
from df_fjmcjdltz a,
(select byqbh ,isnull(max(bsdl_ygz),0) as bsz
from df_fjmcjdltz
where jsdw=:cbbh and dfyf=:dfyf and jlfs='2' and isnull(nullif(stjld,''),'N')='N'
group by byqbh
)b
where jsdw=:cbbh and dfyf=:dfyf and jlfs='2' and isnull(nullif(stjld,''),'N')='N'
and a.byqbh=b.byqbh and isnull(a.bsdl_ygz,0)>=b.bsz
group by a.byqbh) maxbs_minjld,
(select c.byqbh,(d.ybsz - c.bsyg) as ygbsc,(d.wbsz - c.bswg) as wgbsc
from
(select byqbh,sum(bsdl_ygz) as bsyg,sum(bsdl_wg) as bswg
from df_fjmcjdltz
where jsdw=:cbbh and dfyf=:dfyf and jlfs='2' and isnull(nullif(stjld,''),'N')='N'
group by byqbh
)c,
(select zbbh,sum(ygydl) as ygz,sum(ygbs) as ybsz,sum(wgbs) as wbsz from df_bsjs_temp
where cbbh=:cbbh
group by zbbh)d
where (((d.ybsz - c.bsyg)<>0) or ((d.wbsz - c.bswg)<>0)) and c.byqbh=d.zbbh ) phbyq
where jsdw=:cbbh and dfyf=:dfyf and jlfs='2' and isnull(nullif(stjld,''),'N')='N'
and maxbs_minjld.byqbh=phbyq.byqbh and df_fjmcjdltz.jldh=maxbs_minjld.phjld using sqlca1;
2009-05-04 10:19 | glbking[未注册用户]

#115楼  回复 引用 查看   

真长啊。。。
2009-05-04 10:26 | AlexLiu       

#116楼  回复 引用   

日本人的东西学都了的人都很会钴牛角尖!
每个国家的国情都不一样。
我最讨厌拿中国缺点跟外国的优点比的这种人。
日本人事情节做的精致,但缺少开创性的东西。
中国人事情做的大气,不拘一格,所以中华文明源远流长。
要拿中国跟日本比,不要局限在最近的几十年里,要放在人类文明发展的历史长河中比。
如果中国和日本是两只股票,当你查看了这两只股票在历史上的表现后,你会买哪只股票呢?
鹰有时比鸡飞的低,但鸡永远也飞不了鹰那么高。
2009-05-04 11:26 | 西南药业[未注册用户]

#117楼  回复 引用 查看   

--引用--------------------------------------------------
後生哥哥: 拜读留字,从楼主的贴子到是没看出什么,但是从评论中到是看到不少东西
--------------------------------------------------------
同感
2009-05-04 12:13 | 炸药3       

#118楼  回复 引用   

多年前认识位面向对象高手,出于其手的sql都是至简无比,内联查询都要被分为多个select分别执行,甚至都不需要过多了解数据存储原理,对于一般的项目这样做本也无可厚非,一旦项目涉及海量数据且对性能要求严格这样做无疑是自找死路,楼主确实对sql了解不深,但这并没有什么错,面向对象本身就是牺牲性能来降低维护成本的。还有几句不入耳的话送给楼主,谦虚不是一边强调读了20本sql书籍一边要求别人拿出更有影响力的sql语句,何况熟悉语句并不都是大师

#119楼  回复 引用   

应该是特殊项目特殊对待,日常生活中的,简单的项目,说白了,
大部分是添加、删除、修改,然后来个统计,没什么大不了的,用面向
对象也完全可以搞定,面向对象又没说,不能用sql语句。

程序写的是面向对象的,我觉得就是属于面向对象,并不是非要把被管
理的数据也都非要进行面向对象吧,那估计是对面向对象的狭隘理解了。
2009-05-04 13:49 | jirigala[未注册用户]

#120楼  回复 引用   

当大家把上面的字段去掉几个后,再去掉一个些CASE 后,会发现很简单的嘛

declare @sql varchar(8000),@s1 varchar(8000)
select @sql = '',@s1=''
select @sql = @sql+ ',['+km+']=sum(case km when '''+km+''' then cj else 0 end)'
,@s1=@s1+',sum(case km when '''+km+''' then cj else 0 end)/sum(case km when '''+km+''' then 1 else 0 end)'
from test
group by km
exec('select name=case grouping(name) when 1 then ''全班总分'' else name end'+@sql+',小计=sum(cj)
from test
group by name with rollup
union all
select ''全班平均分'''+@s1+',sum(cj)/count(distinct name)
from test')

#121楼  回复 引用 查看   

= =||真的很普通 如果是说在入门1个月的时候看看 还说得过去....这个是标题党吗? 博客园什么时候变成mop了...
2009-05-04 15:00 | Gerrard       

#122楼[楼主]  回复 引用 查看   

看来,现在的刚入门1个月就很厉害了,我这么多年没怎么发现,也没见过
那么厉害1个月入门就有这么厉害的,就吹吧,看能吹得多厉害。
2009-05-04 17:17 | 吉日嘎拉       

#123楼  回复 引用 查看   

case then一直没用过,都是标准的t-sql 4.0语句,还好上千万的数据都查询可以应付。

这次倒是学习了case then语句,不过相比之下感觉收货最大的是知道了《程序员的SQL金典》这本书,好书啊,呵呵。

感谢下#110楼
2009-05-04 19:10 | 黑羽飘舞       

#124楼  回复 引用 查看   

大师!!!是说语句的排版吗???

另外楼主也不要生气,实话说这个语句,不管是5年前还是10年前都谈不上有多神奇。确实很普通,你说神奇在哪里呢?子查询?这个应该是SQL的基础吧,CASE语句,普普通通吧!另外最后那个关于A表的过滤条件应该写在里面,而不是最后。

这个神奇和时间没关系的因为没有用到什么特殊的技术,比如说5年前才有的技术,子查询和CASE 本来就有的吧。
对了我02年开始用数据库。

2009-05-05 17:11 | 阿水       

#125楼  回复 引用   

评论确实比文章精彩的多!!!
经常用经常写当然感觉不到什么 试问在你没接触到数据库前你知道select是个pi么? LZ明明说5年前对自己有影响的SQL语句,又不是在说你们。你出生后叫的第一声妈 是不是也很简单 别告诉我对你没啥影响?
2009-05-06 16:21 | 安静[未注册用户]

#126楼  回复 引用   

--引用--------------------------------------------------
xiaotie: 路过,看见LZ27楼的号召,真名BS一下。
--------------------------------------------------------
可惜我没有注册账号,改天一定注册鄙视一下
从来不留言 但是不留不行了 太可乐了 哈哈哈哈

#127楼  回复 引用 查看   

我觉得我还是比较中肯的说
我觉得这个SQL语句确实没有很特别的地方,
应该说,很多人都知道可以这样写的。
我还是支持你的楼主
毕竟有的东西对于不同人有不同的意义
就像乔丹扣篮就是轻轻跳一下
我们轻轻跳一下却扣不了篮
2009-05-10 00:41 | 欧阳(oy)'s place       

#128楼  回复 引用   

真的没什么神奇的。
学过SQL 高级编程的应该都会。
现在杭州的程序员,很多都是大学生刚毕业,当然不指望他们会什么。
但是工作3-5年的,我认为,这个语句,还是很容易写出来的。
不管是DBA还是程序员。
2009-05-10 15:29 | 罗钦[未注册用户]

#129楼  回复 引用 查看   

哎,怎么连博客园也有人喜欢喷呢。。。
2009-05-10 15:43 | Alias       

#130楼  回复 引用   

对于ORACLE的SQL查询语句,还应该知道“解释计划”,也就是数据库后台是如何执行SQL语句的。
2009-05-10 22:26 | alan_han[未注册用户]

#131楼  回复 引用   

这个03年时就很熟了已经
2009-05-11 23:50 | testtest[未注册用户]

#132楼  回复 引用 查看   

感觉楼主有点像我一个同学。。。

喜欢一惊一乍的。。
2009-05-12 16:50 | 不若相忘于江湖       

#133楼  回复 引用 查看   

这种语句性能也很差的
2009-06-13 21:03 | 毛必盛       

#134楼  回复 引用   

这个算很简单的了,如果你做过进销存,erp什么的,大量的统计报表很多都会写出比这种还复杂的sql,我就写过一个存储过程,将近1000行
2009-06-15 16:04 | bsmg[未注册用户]

#135楼  回复 引用   

这个SQL语句是因为字段多,条件语句多,所以看着乱,才显得复杂。要是把多余的都去掉再看,挺平常的。

楼主不是吗?
2009-06-24 20:42 | asfdaf asfd as[未注册用户]

#136楼  回复 引用 查看   

这不是你的错,是我们国家的整体水平太低,你只要学一点在国内就有饭吃了,就没有了去创新的动力了,就像我们的汽车工业,直接引进就可以有饭吃了,谁还自己去造车呢?
2010-01-06 13:37 | 汉卿       

#137楼  回复 引用   

有一种东西叫严谨,中国的大部分程序缺少严谨,中国的大部分人眼高手低
这个SQL语句就是教材,就是模板。

支持。
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值