oracle某一字段行内数据去重

qq_39995089 2018-07-25 02:41:59
每行的数据不允许出线重复的名字即可,如第一行的薄翠宁只出现一次即可,去掉重复数据.有什么实现方法吗?


...全文
928 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaiger 2018-07-25
  • 打赏
  • 举报
回复
如果名字STAFF字段内名字较多,需要把SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 10最后的10改大一点
yaiger 2018-07-25
  • 打赏
  • 举报
回复
照着下面SQL修改吧,这是SELECT的,如果是UPDATE,可以自己调整
SELECT 唯一字段,
LISTAGG(COLUMN_DISTINCT, ',') WITHIN GROUP(ORDER BY COLUMN_DISTINCT) AS 去重字段
FROM (SELECT DISTINCT 唯一字段, COLUMN_DISTINCT
FROM (SELECT 唯一字段,
REGEXP_SUBSTR(去重字段, '[^,]+', 1, lv) COLUMN_DISTINCT
FROM table,
(SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 10) b
WHERE b.lv <= REGEXP_COUNT(去重字段, '\,') + 1
ORDER BY 唯一字段))
GROUP BY 唯一字段;
qq_39995089 2018-07-25
  • 打赏
  • 举报
回复
引用 3 楼 yaiger 的回复:
把唯一字段贴出来,否则SQL写法不同
前三个字段都是唯一的,我也可以修改表结构添加一列
yaiger 2018-07-25
  • 打赏
  • 举报
回复
把唯一字段贴出来,否则SQL写法不同
qq_39995089 2018-07-25
  • 打赏
  • 举报
回复
引用 1 楼 yaiger 的回复:
只有这一列吗?没有其它字段?
有其他唯一的字段
yaiger 2018-07-25
  • 打赏
  • 举报
回复
只有这一列吗?没有其它字段?

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧