如何在一个字符串中查找已有字符串出现的位置

hztangzx 2005-05-11 08:03:33
如何在一个字符串中查找已有字符串出现的位置,如:在列bh中查找字符串258出现的位置,并取出这之前的字符串,然后加上这个258字符串,01001258Q,取01001,然后加上258,即01001+258
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztangzx 2005-05-11
  • 打赏
  • 举报
回复
to: zjcxc(邹建)
结果为零行,但我不加where 条件时,结果为xh 列的数据
zjcxc 2005-05-11
  • 打赏
  • 举报
回复
select left(bh,charindex(xh,bh)-1)+xh as 列名
from 表
where charindex(xh,bh)>0
hztangzx 2005-05-11
  • 打赏
  • 举报
回复
其实这个258是列名为xh中数据,我是想通过xh列中的数据来查找在bh列中出现的位置,然后再把它出现的位置之前的字符串取出再加上xh列中的数据形成一个新的字符串作为一个新列,如何做到
点点星灯 2005-05-11
  • 打赏
  • 举报
回复
如果是列名,可以将'789dfgh123456'换成列名就可以了.
点点星灯 2005-05-11
  • 打赏
  • 举报
回复
参考:
select charindex('h','789dfgh123456')
select substring('789dfgh123456',0,charindex('h','789dfgh123456'))+'258'
zjcxc 2005-05-11
  • 打赏
  • 举报
回复
declare @s1 varchar(20),@s2 varchar(10)
set @s1='01001258Q'
set @s2='258'

select left(@s1,charindex(@s2,@s1)-1)+@s2
--结果:01001258
orcale 2005-05-11
  • 打赏
  • 举报
回复
declare @search varchar(100)
set @search='258'
select case when charindex(@search,bh)>0 then left(bh, charindex(@serarch,bh)-1)+@search
else '' end bh from tablename

27,579

社区成员

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

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