SQL数据库 某一列的记录被 reverse 颠倒 该怎么判断记录是否被reverse颠倒,然后把颠倒过的reverse回来?

q_q275835897 总经理  2015-10-22 04:56:50
SQL数据库 某一列的记录被 reverse 颠倒 该怎么判断记录是否被reverse颠倒,然后把颠倒过的reverse回来?大神帮帮忙呀。
大神帮帮忙呀。

...全文
115 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
如果你能提供几个标准的 品类,比如:荣式,金龙鱼,等等的,那就好办了。 这样就能用这些标准的文字去查找,有没有,如果没有,就是说明颠倒了,然后reverse就可以,比如:


;with st
as
(
select '荣氏' as name union all
select '金龙鱼' union all
select '鹭滨' 
),

tb
as
(
select 'm0001汁果苹氏荣' 品名
)

select tb.品名,
       case when exists(select 1 from st where reverse(tb.品名) like '%'+st.name+'%') then reverse(tb.品名)  
	        else tb.品名 end as new_品名
from tb
/*
品名	new_品名
m0001汁果苹氏荣	荣氏苹果汁1000m
*/

回复
spiritofdragon 2015-10-22
你有品名的可选项的正确的完整的列表么?如果有,那就好办。 直接这么写
;with 品名全部可选项列表(品名) as 
(
select '荣氏橙汁酸奶(200ml)' union all
select '荣氏橙汁酸奶(500ml)' union all
select '荣氏橙乌龙茶(500ml)' --......
)
update t set 品名=reverse(tt.品名)
from t join 品名全部可选项列表 as tt on t.品名=reverse(tt.品名)
;
如果没有那只能自己整理出一个: 用
select distinct t1.品名
from t t1,t t2
where t1.流水号<>t2.流水号 and t1.品名=reverse(t2.品名) and LEN(t1.品名)>1
这个语句,执行后,每两行一对,手工挑出正确的再,整理出一个列表来。再按第一种情况update
回复
q_q275835897 2015-10-22
大神帮帮忙。在线等啊。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

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