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

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

...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
大神帮帮忙。在线等啊。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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