llcong 发表于 2018-9-23 13:48:41

oracle rowid 使用经典实例

A  name      grade
  aaa                         10
  bbb                     20
  ccc                         30
  B
  name      age
  aaa                         25
  bbb                        25
  ccc                         27
  ddd                        28
  eee                                    25
  请用一条或数条sql语句实现下列功能:(不能用in语句,不能用存储过程)
  1, 实现不等值查询,查出name在B表但不在A表的记录。
  2, 删除B表name重复的记录,但重复项至少要留一条。
  
  SELECT name, age
  FROM B b
  WHERE NOT EXISTS(
  SELECT 'x'
  FROM A a
  WHERE b.name = a.name);
  
  DELETE FROM B a WHERE rowid>
  (SELECT min(rowid)
  FROM B b
  WHERE a.sname=b.sname);

页: [1]
查看完整版本: oracle rowid 使用经典实例