sql 替换 查询出来的字段 1,2,3,4 替换为 '水杯','枕头','笔记本电脑','香水'

橙色阳光 2016-10-10 10:58:14

如图
1,2,3,4 替换为 '水杯','枕头','笔记本电脑','香水'
1 替换 为'水杯'
2 替换 为'枕头' 类推

求sql语法
...全文
508 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2016-10-10
  • 打赏
  • 举报
回复
引用 7 楼 sat472291519 的回复:
为啥怎么复杂啊... 直接替换不就好了? select t.*,t.GDFXGFXXM,replace(replace(t.GDFXGFXXM,'1','合征'),'2','水杯') from VFB_CS_FENMIANQK t where t.fbkh = 'xxx'
估计编码和名称,不是固定的;
中国风 2016-10-10
  • 打赏
  • 举报
回复
没有10以上的数字可直接用replace 以上为通用方法,针对已存在名称主表时用法
橙色阳光 2016-10-10
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:

 ;WITH CTET1(ID,Name)
 AS
 (
 SELECT 1,'水杯'
 UNION ALL SELECT 2,'枕头'
 UNION ALL SELECT 3,'笔记本电脑' 
 UNION ALL SELECT 4,'香水'
 ),CTET2(IDs)
 AS
 (SELECT '1,2,3,4' UNION SELECT '1')
 SELECT STUFF((SELECT ','+Name FROM CTET1 WHERE ','+t.IDs+','  LIKE '%,'+RTRIM(ID)+',%' ORDER BY ID FOR XML PATH('')) ,1,1,'') AS Name
 FROM CTET2 AS t
 /*
 水杯,枕头,笔记本电脑,香水
水杯
*/
为啥怎么复杂啊... 直接替换不就好了? select t.*,t.GDFXGFXXM,replace(replace(t.GDFXGFXXM,'1','合征'),'2','水杯') from VFB_CS_FENMIANQK t where t.fbkh = 'xxx'
zbdzjx 2016-10-10
  • 打赏
  • 举报
回复
sql server也有replace。 例如:replace(',1,2,3,4,', ',1,', ',''水杯'',')
橙色阳光 2016-10-10
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
选拆解,再拼接;
有没有 类似 C# 的Replace 方法
橙色阳光 2016-10-10
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
有没有一个表对应数字,还是固定值
就是固定值 1,对应特定的一个中文 2对应一个中文
中国风 2016-10-10
  • 打赏
  • 举报
回复

 ;WITH CTET1(ID,Name)
 AS
 (
 SELECT 1,'水杯'
 UNION ALL SELECT 2,'枕头'
 UNION ALL SELECT 3,'笔记本电脑' 
 UNION ALL SELECT 4,'香水'
 ),CTET2(IDs)
 AS
 (SELECT '1,2,3,4' UNION SELECT '1')
 SELECT STUFF((SELECT ','+Name FROM CTET1 WHERE ','+t.IDs+','  LIKE '%,'+RTRIM(ID)+',%' ORDER BY ID FOR XML PATH('')) ,1,1,'') AS Name
 FROM CTET2 AS t
 /*
 水杯,枕头,笔记本电脑,香水
水杯
*/
卖水果的net 版主 2016-10-10
  • 打赏
  • 举报
回复
选拆解,再拼接;
中国风 2016-10-10
  • 打赏
  • 举报
回复
有没有一个表对应数字,还是固定值

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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