sql怎样删除所有值总和小于某个阈值的行?

如果一张表只有3个字段A,B,C
那么
delete from table where (A+B+C) < t; 即可

但是一张表有几千个字段(可能有些夸张,但是注意就是几千个,请针对这张表,不要提分表的方案)
怎么解决?

阅读 4.2k
2 个回答

可以通过在存储过程里面,用游标来做,比如你有100个字段,想其中99列的总和小于1000,排除掉其中一列(dep_name),只需要在sql里面手动排除这一列就好了,如果需要计算的列少,可以直接按照你说的枚举相加即可。

只要你的 a b c 全是数值的字段,你这句sql 就可以了啊

没有看清题,离题了,
补充一下吧

select COLUMN_NAME from information_schema.COLUMNS where table_name = 'table_name'

获取所有字段名,然后用获取的字段名,拼装你要的delete sql 吧,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题