0

我的帖子

个人中心

设置

  发新话题
比如说,有一个SQl表,里面有很多数据,怎么随机在这个表里面删除30%这个表的数据



DELETE TOP 30 PERCENT
FROM [MyTab]
WHERE YourConditions



SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
DELETE FROM [MyTab]
WHERE YourIdField IN
(
  SELECT TOP 30 PERCENT
    YourIdField
  FROM [MyTab]
  WHERE YourConditions
  ORDER BY NEWID()
)



SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
DELETE
FROM Person.Person
TABLESAMPLE (30 PERCENT)

随机取样30%?



我的51CTO博客

SQL Server MCITP, MVP, MCT, DBA
DELETE
FROM Person.Person
TABLESAMPLE (30 PERCENT)

随机取样30%?



引用:
原帖由 iolfno 于 2017-7-17 23:29 发表
DELETE
FROM Person.Person
TABLESAMPLE (30 PERCENT)

随机取样30%?
是随机取样删除,你可以了解下 TABLESAMPLE 函数。
同样的表同样的数据,执行这条语句,每次删除的东西都不一样。
自己可以做个测试。 select   * from  tablename  TABLESAMPLE (30 PERCENT) 看看结果是不是随机取样




本帖最后由 lantshirt 于 2017-7-18 11:45 编辑
提示: 作者被禁止或删除 内容自动屏蔽
‹‹ 上一贴:求助:一个表两个字段取另一个表的同一个字段方法(SQL语 ...   |   下一贴:Error infos: DedeCms错误警告:连接数据库失败,可能数据 ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com