SQL字符串替换问题,急,多谢

dbcz444 2018-01-26 04:54:59
表yyyddd有一个字段名称是“认领局向”,字段里面的值不统一,比如:
有字段值是:壶口营业厅
有字段值是:壶口代理店(壶口营业厅)
我想将“壶口代理店(壶口营业厅)”这种字段的值全部统一为“壶口营业厅”这种,用了以下的指令,不能通过,请高手指教,急,谢谢。(本人用的是青蛙TOAD 8.0)

UPDATE yyyddd SET 认领局向=substring(支局,charindex('(',支局),charindex(')',支局)-charindex('(',支局))
WHERE 支局 LIKE'%(%)%'
...全文
675 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbcz444 2018-01-30
  • 打赏
  • 举报
回复
解决了,非常感谢楼上几位。
dbcz444 2018-01-30
  • 打赏
  • 举报
回复
急,求助。 是不是我用的是ORACAL数据库所以导致指令没有通过?(本人客户端用的是青蛙TOAD 8.0)
zjcxc 2018-01-29
  • 打赏
  • 举报
回复
你自己写的语句和你给出的数据都不一样的列名,不管这个,直接改你的语句,反正你就是取 () 中的内容,括号是中文还是英文很重要
-- 全中文括号
UPDATE yyyddd SET 认领局向=select substring_index(substring_index(支局, ')',1),'(',-1)
WHERE 支局 LIKE'%(%)%' 
;
-- 全英文括号
UPDATE yyyddd SET 认领局向=select substring_index(substring_index(支局, ')',1),'(',-1)
WHERE 支局 LIKE'%(%)%' 
;
-- 中文括号( + 英文 )
UPDATE yyyddd SET 认领局向=select substring_index(substring_index(支局, ')',1),'(',-1)
WHERE 支局 LIKE'%(%)%' 
;
-- 英文 ( + 中文)
UPDATE yyyddd SET 认领局向=select substring_index(substring_index(支局, ')',1),'(',-1)
WHERE 支局 LIKE'%(%)%' 
;
dbcz444 2018-01-29
  • 打赏
  • 举报
回复
怕你们看不明白,重新写一个,更新成下面这个字段值: 号码 更新后的关联受理点 2310000 壶口营业厅 2350001 壶口营业厅 2390002 壶口营业厅 2430003 壶口营业厅 2470004 壶口营业厅 2510005 壶口营业厅 2550006 壶口营业厅 2590007 壶口营业厅 2630008 壶口营业厅 2670009 壶口营业厅 2710010 关西营业厅 2750011 关西营业厅 2790012 关西营业厅 2830013 关西营业厅 2870014 关西营业厅 2910015 关西营业厅 2950016 关西营业厅 2990017 关西营业厅 3030018 关西营业厅 3070019 关西营业厅 3110020 关西营业厅 3150021 关西营业厅
dbcz444 2018-01-29
  • 打赏
  • 举报
回复
号码 原关联受理点 2310000 壶口营业厅 2350001 壶口代理店(壶口营业厅) 2390002 壶口营业厅 2430003 壶口代理店(壶口营业厅) 2470004 壶口营业厅 2510005 壶口代理店(壶口营业厅) 2550006 壶口营业厅 2590007 壶口代理店(壶口营业厅) 2630008 壶口营业厅 2670009 壶口代理店(壶口营业厅) 2710010 关西营业厅 2750011 关西代理店(关西营业厅) 2790012 关西营业厅 2830013 关西代理店(关西营业厅) 2870014 关西营业厅 2910015 关西代理店(关西营业厅) 2950016 关西营业厅 2990017 关西代理店(关西营业厅) 3030018 关西营业厅 3070019 关西代理店(关西营业厅) 3110020 关西营业厅 3150021 关西代理店(关西营业厅) ……………… 数据有十几万条,我只需要把所有的有括号的受理点,更改为括号里面的受理点名称,这样就可以统一统计了。 就是更新成这样: 号码 更新后的关联受理点 原关联受理点 2310000 壶口营业厅 壶口营业厅 2350001 壶口营业厅 壶口代理店(壶口营业厅) 2390002 壶口营业厅 壶口营业厅 2430003 壶口营业厅 壶口代理店(壶口营业厅) 2470004 壶口营业厅 壶口营业厅 2510005 壶口营业厅 壶口代理店(壶口营业厅) 2550006 壶口营业厅 壶口营业厅 2590007 壶口营业厅 壶口代理店(壶口营业厅) 2630008 壶口营业厅 壶口营业厅 2670009 壶口营业厅 壶口代理店(壶口营业厅) 2710010 关西营业厅 关西营业厅 2750011 关西营业厅 关西代理店(关西营业厅) 2790012 关西营业厅 关西营业厅 2830013 关西营业厅 关西代理店(关西营业厅) 2870014 关西营业厅 关西营业厅 2910015 关西营业厅 关西代理店(关西营业厅) 2950016 关西营业厅 关西营业厅 2990017 关西营业厅 关西代理店(关西营业厅) 3030018 关西营业厅 关西营业厅 3070019 关西营业厅 关西代理店(关西营业厅) 3110020 关西营业厅 关西营业厅 3150021 关西营业厅 关西代理店(关西营业厅) ……………… 谢谢。
dbcz444 2018-01-29
  • 打赏
  • 举报
回复
回复楼上的,我后面说得不太清楚,有点失礼了,更正如下: 原来的表是这样的: 号码 认领机构 2310000 壶口营业厅 2350001 壶口代理店(壶口营业厅) 2390002 壶口营业厅 2430003 壶口代理店(壶口营业厅) 2470004 壶口营业厅 2510005 壶口代理店(壶口营业厅) 2550006 壶口营业厅 2590007 壶口代理店(壶口营业厅) 2630008 壶口营业厅 2670009 壶口代理店(壶口营业厅) 2710010 关西营业厅 2750011 关西代理店(关西营业厅) 2790012 关西营业厅 2830013 关西代理店(关西营业厅) 2870014 关西营业厅 2910015 关西代理店(关西营业厅) 2950016 关西营业厅 2990017 关西代理店(关西营业厅) 3030018 关西营业厅 3070019 关西代理店(关西营业厅) 3110020 关西营业厅 3150021 关西代理店(关西营业厅) ……………… 数据有十几万条,我只需要把所有的有括号的受理点,更改为括号里面的受理点名称,这样就可以统一统计了。 更新后的表是这样的: 号码 认领机构 2310000 壶口营业厅 2350001 壶口营业厅 2390002 壶口营业厅 2430003 壶口营业厅 2470004 壶口营业厅 2510005 壶口营业厅 2550006 壶口营业厅 2590007 壶口营业厅 2630008 壶口营业厅 2670009 壶口营业厅 2710010 关西营业厅 2750011 关西营业厅 2790012 关西营业厅 2830013 关西营业厅 2870014 关西营业厅 2910015 关西营业厅 2950016 关西营业厅 2990017 关西营业厅 3030018 关西营业厅 3070019 关西营业厅 3110020 关西营业厅 3150021 关西营业厅 里面的括号是英文的。楼上基本明白了我的意思,我用楼上的 UPDATE yyyddd SET 认领局向=select substring_index(substring_index(支局, ')',1),'(',-1) WHERE 支局 LIKE'%(%)%' 这一条指令,也没有通过,我的用的是ORACAL数据库所以导致指令没有通过?(本人客户端用的是青蛙TOAD 8.0) 多谢。
道玄希言 2018-01-27
  • 打赏
  • 举报
回复
数据部规范的修改, 可以分多次嘛, 一次查询出来对不规则的分组一下, 然后分几次改掉, 就没那么复杂了
zjcxc 2018-01-26
  • 打赏
  • 举报
回复
跟数据有关吧, 你把满足条件数据列出来看看

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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