两列有相同的字符,如何通过sql语句分离字符多的一列

qq_17860887 2015-07-09 07:33:55
两列有相同的字符,如何通过sql语句分离字符多的一列
比如有A,B两列
A列 B列 想要的结果(把B列根据A列相同的字符分离)
ABCD ABCD123 123
RFTTT RFTTT456 456
HHT HHTRR RR
YYR YYRUU UU

如上所示,A列的字符和B列左边的部分字符是一模一样的,现在需要分离B列,把B列与A列相同的字符分离为一列,A列和B列剩下不相同的字符分列为一列,求大神赐教!!!
...全文
158 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zbdzjx 2015-07-10
select REPLACE(B列 ,A列,'') from table 
回复
qq_17860887 2015-07-10
这个问题用excel解决了 SUBSTITUTE(B1,A1,)
回复
zztfkyd99 2015-07-09
sql2000没弄过 不知道那个有啥函数 基本思路是这样 用B列的长度减去A列的长度 然后用字符串截取的函数 截取剩下的 就OK了呗
回复
qq_17860887 2015-07-09
是sql,不是mysql
回复
zztfkyd99 2015-07-09
不是mysql啊 ?
回复
qq_17860887 2015-07-09
服务器: 消息 195,级别 15,状态 10,行 1 'LOCATE' 不是可以识别的 函数名。 执行后提示上述信息,sql2000版本
回复
zztfkyd99 2015-07-09
那就按着刚才我的SQL语句可以了 select A列,B列,SUBSTR(B列,LOCATE(A列, B列)+LENGTH(A列),LENGTH(B列)-LENGTH(A列)) FROM DUAL
回复
qq_17860887 2015-07-09
B列前几位始终是A列的内容
回复
zztfkyd99 2015-07-09
如果 A列始终出现在B列左侧的话 这样写是可以的 select SUBSTR(B列,LOCATE(A列, B列)+LENGTH(A列),LENGTH(B列)-LENGTH(A列)) FROM DUAL
回复
道玄希言 2015-07-09
将A列中,包含B列的内容,替换成空字符
回复
道玄希言 2015-07-09
select REPLACE(A列 ,B列,'') from table
回复
qq_17860887 2015-07-09
没看明白,跟A列需要有关系,你这个语句全都是B列
回复
shoppo0505 2015-07-09
select REPLACE(B列 ,B列,'') from table
回复
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-07-09 07:33
社区公告
暂无公告