求一个sql语句,把字段里 第一个冒号以后的字符替换成空字符串,立马给分

卷泥巴重来 2015-02-09 03:32:48
表数据如图:

把冒号及以后的数据都替换成空!个名:objectUser
...全文
383 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2015-02-09
  • 打赏
  • 举报
回复
这个范围比较大,如果只有中文的一到十的话,可以直接这样
UPDATE objectUser
SET short=SUBSTRING(short,CHARINDEX('、',short)+1,LEN(short))
WHERE PATINDEX('[一二三四五六七八九十]、%',short)>0
俺是大菠萝 2015-02-09
  • 打赏
  • 举报
回复
如果是冒号及冒号以上,那charindex那里把+1去掉就行了; 另外,如果是把“一、”这样的需要也去掉,属于字符分析的范畴,还是别用数据库搞了
卷泥巴重来 2015-02-09
  • 打赏
  • 举报
回复
引用 4 楼 ky_min 的回复:
UPDATE objectUser
SET short=SUBSTRING(short,1,CHARINDEX(':',short)-1)
WHERE CHARINDEX(':',short)>0
再帮个忙撒,把 类似于 “一、” 这些都去掉
还在加载中灬 2015-02-09
  • 打赏
  • 举报
回复
UPDATE objectUser
SET short=SUBSTRING(short,1,CHARINDEX(':',short)-1)
WHERE CHARINDEX(':',short)>0
卷泥巴重来 2015-02-09
  • 打赏
  • 举报
回复
引用 1 楼 ky_min 的回复:
UPDATE objectUser
SET short=SUBSTRING(short,1,CHARINDEX(':',short))
WHERE CHARINDEX(':',short)>0
参考一下
引用 2 楼 u013226693 的回复:
DECLARE @tb TABLE (short VARCHAR(200)) INSERT INTO @tb(short) SELECT '11:2222222' UNION ALL SELECT '22:22323' UNION ALL SELECT '3333:44444444' select replace(short,substring(short,charindex(':',short)+1,len(short)),'') from @tb
注:把冒号级冒号以后的都删掉
俺是大菠萝 2015-02-09
  • 打赏
  • 举报
回复
DECLARE @tb TABLE (short VARCHAR(200)) INSERT INTO @tb(short) SELECT '11:2222222' UNION ALL SELECT '22:22323' UNION ALL SELECT '3333:44444444' select replace(short,substring(short,charindex(':',short)+1,len(short)),'') from @tb
还在加载中灬 2015-02-09
  • 打赏
  • 举报
回复
UPDATE objectUser
SET short=SUBSTRING(short,1,CHARINDEX(':',short))
WHERE CHARINDEX(':',short)>0
参考一下

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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