我对一个帖子的几分悲哀.....无语:散分 100luoyoumou1202]

发布时间:2016-12-7 22:35:33 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"我对一个帖子的几分悲哀.....无语:散分 100luoyoumou1202]",主要涉及到我对一个帖子的几分悲哀.....无语:散分 100luoyoumou1202]方面的内容,对于我对一个帖子的几分悲哀.....无语:散分 100luoyoumou1202]感兴趣的同学可以参考一下。

http://topic.csdn.net/u/20090917/16/7F6141C5-B0C4-482E-B100-0BCEAB9C2714.html --我对这个帖子的几分担忧...... --原帖出处: http://topic.csdn.net/u/20090917/16/7F6141C5-B0C4-482E-B100-0BCEAB9C2714.html --急切询问如何写1个比较复杂的sql  --用户可以选择2或者3 或者4个字段  --现在简化问题, 仅仅选择4个字段 (确定),  --现在有可能记录行里很多的记录这4个字段都为空值(或者部分记录仅仅有1个为空值)。  --现在要找出这个表里4个字段重复的值  (有可能重复1个字段的值 重复2个字段的值 重复3或4个字段的值)  --这个语句该如何写  --首先这个语句要排除4个字段都为空值的记录  --之后再查或者可能重复1个字段的值 重复2个字段的值 重复3或4个字段的值。  --------------------------------------------------------------------------------- --( 其实,首先在做这个题目之前,我们都应该思考一下: -- 两两相等的情况就已经包括了 每三个相等的情况 和 四个均相等的情况,各位:对吧? ) ---也就是说:后两者是前者的子集! --我发现:好多所谓的SQL高手们,为了拿分,不顾及SQL语句的速度及质量!我仰天长叹:悲哀........ DROP TABLE test; CREATE TABLE test(   Id INT IDENTITY(1,1),   Col1 VARCHAR(10),   Col2 VARCHAR(10),   Col3 VARCHAR(10),   Col4 VARCHAR(10) ); INSERT INTO test(Col1, Col2, Col3, Col4) SELECT 'A01', 'B03', 'C05', 'A01' UNION ALL SELECT 'B04', 'D09', 'N00', 'M30' UNION ALL SELECT 'B01', 'C88', 'B01', 'T10' UNION ALL SELECT 'D05', 'T11', 'N00', 'B05' UNION ALL SELECT 'M33', 'D09', 'N00', 'M33' UNION ALL SELECT 'D09', 'D09', 'D09', 'M30' UNION ALL SELECT 'B04', 'B04', 'B04', 'B04' UNION ALL SELECT 'T55', 'T20', 'Z43', 'Z15' UNION ALL SELECT 'Z78', 'Z34', 'D10', 'D10' UNION ALL SELECT '', '', '', '' UNION ALL SELECT NULL, NULL, NULL, NULL; ---方法一:(最优方法) SELECT * FROM test WHERE (Col1<>'' OR Col2<>'' OR Col3<>'' OR Col4<>'') --排除四个字段均为空字符情况   AND (Col1=Col2 OR Col1=Col3 OR Col1=Col4    OR Col2=Col3 OR Col2=Col4    OR Col3=Col4 ) --方法二:(最差的方法,弱智商方法) SELECT * FROM test WHERE (Col1<>'' OR Col2<>'' OR Col3<>'' OR Col4<>'') --排除四个字段均为空字符情况   AND (         ( Col1=Col2 OR Col1=Col3 OR Col1=Col4 OR Col2=Col3 OR Col2=Col4 OR Col3=Col4 ) --两两相等的情况      OR ( Col1=Col2 AND Col1=Col3 )                --每三个相等的情况      OR ( Col1=Col2 AND Col1=Col4 )      OR ( Col1=Col3 AND Col1=Col4 )      OR ( Col2=Col3 AND Col2=Col4 )      OR ( Col1=Col2 AND Col2=Col3 AND Col3=Col4 )  --四个均相等的情况

沙发F!

学习.

还好我没有回那个帖.

引用 2 楼 liangck 的回复:学习..

引用 3 楼 dawugui 的回复:还好我没有回那个帖. 我也没

学习 

引用 5 楼 js_szy 的回复:引用 3 楼 dawugui 的回复: 还好我没有回那个帖. 我也没 0.

楼主结贴率为0. 没有权利说任何一个人。 哪怕他给的回复是答非所问。 回帖是兴趣,不是义务。

看了看,我也没没回此贴!

SQL版——鲁迅! 精神还是值得称道...

jf ,接分啊。

那个帖子是MySQL/Postgresql版的,感觉很暴力。。。。。。 楼主还有个马甲?

该回复于2009-09-22 15:58:58被版主删除

引用 3 楼 dawugui 的回复:还好我没有回那个帖..

学习.

也学习啦啊。。 lz有心啊~~

在sql server 这两个写法的执行速度几乎一样 并不是多写条件就会多计算,有的时候,多写条件能起到一些优化作用

好好学习,天天吃饭

办~证的都来了

不是我们版的,无视

??

呵呵,海爷的话有道理

确实解决的办法比较好,鄙视一下自己,我是弱智

.

""

上一篇:怎样防止SQL注入攻击? 15fredrickhu]
下一篇:数据库创建后不能创建证书 20分,无满意结帖,结帖人sfgwkpe]

相关文章

相关评论