xblues 发表于 15-7-2009 00:28:42

周星星1832 发表于 15-7-2009 12:46:54

。。。。。。。。。。
一看你的SQL就晕,那么多嵌套,效率低。。。。。。。。。。。。

还有你的中文俺也看不懂:L :L

coredump 发表于 15-7-2009 14:40:01

回复 #2 lufumin1832 的帖子

看着“查重”,在看着xblues的头像,就想到了“查虫”;P

coredump 发表于 15-7-2009 14:45:36

SELECT*
FROMTable
WHEREAccount_NO
   IN   (SELECT Account_NO
             FROM Table
         GROUP BY Account_NO
         HAVING COUNT(*)>1);

周星星1832 发表于 15-7-2009 18:21:46

原帖由 coredump 于 15-7-2009 13:40 发表 http://www.freeoz.org/forum/images/common/back.gif
看着“查重”,在看着xblues的头像,就想到了“查虫”;P
:$ 俺是理解不了了

sonybp 发表于 16-7-2009 01:10:04

应该是查重复,楼主少打了个“复”字。
一个group by + having就搞定了。4#的正解,另外再加个order by Priority就是楼主要的。

xblues 发表于 16-7-2009 01:12:35

xblues 发表于 16-7-2009 01:18:01

sonybp 发表于 16-7-2009 01:29:57

回复 #8 xblues 的帖子

我没给出任何方法......:funk:
我只是说4楼的方法是对的。4楼的语句就抓出来了所有Account_NO有重复的记录。你再根据这些记录排序。把Priority最高的那条记录标记为1,然后删除其他的记录。
4楼的查询完全和有没有主键无关。

有点晚了,先睡了。如果还是不行,你留贴,我明天回你。

ritz 发表于 16-7-2009 01:57:08

虫虫你准备写本SQL Cookbook么? :lol

coredump 发表于 16-7-2009 11:19:12

回复 #10 ritz 的帖子

他在写cook bug:lol

coredump 发表于 16-7-2009 11:20:59

原帖由 xblues 于 16-7-2009 00:12 发表 http://www.freeoz.org/forum/images/common/back.gif
你那个是简单查重,仔细看题目,这个是需要按某一字段为优先级来查重的。:P

我给你的是关键的一句,剩下的都是添枝加叶的东西,自由发挥了,你第一楼的SQL语句问题最严重的就是差重复的子句,所以单独给你拿出来

xblues 发表于 17-7-2009 00:03:00

bfox 发表于 24-7-2009 18:33:43

oracle 数据库可以有rowid字段标识列的, ms sql 和mysql 没有。
感慨一下, oralce 卖那么贵是有道理的。

coredump 发表于 24-7-2009 18:49:13

原帖由 bfox 于 24-7-2009 17:33 发表 http://www.freeoz.org/forum/images/common/back.gif
oracle 数据库可以有rowid字段标识列的, ms sql 和mysql 没有。
感慨一下, oralce 卖那么贵是有道理的。
ms sql中有 ROWGUIDCOL可以用,概念上和Oracle rowid是一致的。

xblues 发表于 25-7-2009 02:53:43

coredump 发表于 25-7-2009 15:53:12

回复 #16 xblues 的帖子

row_number()受搜索结果影响,同一条数据库记录在不同的SQL语句的结果里Row_Number()是不一样的,同一SQL结果集的不同排序,聚合也会导致Row_Number()不一样。Rowid和那个ROWGUIDCOL相当于记录的物理地址,这个是不会变的,Rowid在同一数据库中唯一, ROWGUIDCOL则是GUID,全球唯一:D

xincheng 发表于 23-9-2009 16:24:16

coredump的方法是正解,不过使用Rowid还是有些地方要注意,表的move、shrink等操作会造成Rowid的改变,这也是使用PK的原因之一。

maqianyi 发表于 23-9-2009 23:21:58

原帖由 bfox 于 24-7-2009 17:33 发表 http://www.freeoz.org/forum/images/common/back.gif
oracle 数据库可以有rowid字段标识列的, ms sql 和mysql 没有。
感慨一下, oralce 卖那么贵是有道理的。
如果大家了解了ORACLE和MSSQL 还有DB2的体系架构,我只能说MSSQL和DB2都是玩具。DB2在银行里面有点搞头市场那是历史的原因,还有IBM的硬件和AIX的帮助。ORACLE单挑DB2的话,DB2连ORACLE 1/10的市场都拿不到。现在DB2的价格比ORACLE便宜了不知道多少。。。。。。
我对DB2也有一定了解,也是DB2的管理员。

[ 本帖最后由 maqianyi 于 23-9-2009 22:23 编辑 ]

earthengine 发表于 24-9-2009 14:36:35

原帖由 maqianyi 于 23-9-2009 22:21 发表 http://www.freeoz.org/forum/images/common/back.gif

如果大家了解了ORACLE和MSSQL 还有DB2的体系架构,我只能说MSSQL和DB2都是玩具。DB2在银行里面有点搞头市场那是历史的原因,还有IBM的硬件和AIX的帮助。ORACLE单挑DB2的话,DB2连ORACLE 1/10的市场都拿不到。现在D ...
我不是很了解ORACLE,但我只能说,各家都有它的优点。要说玩具,IT有哪样技术不是玩具?当年叱诧风云的PDP-1到如今不也就成了博物馆的玩具?高手给他一个SQLite(甚至什么都不给,直接定义数据文件结构)就可以搞大型应用了。

xblues 发表于 8-7-2010 04:34:31

页: [1]
查看完整版本: 如何按着优先级字段查重某一字段