求一 最简单的 sql

振乾 2010-08-20 03:54:48

DECLARE @Tables VARCHAR(600
set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'

问题一:
怎么 获取 '_' 出现第二次的位置
问题二:
最后 我想 通过 截的 字符串 'DedicatedMeas'
由于字符串 是可变的 ,所以这里不能用 特定的 起始结束位置。

...全文
164 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
哥子谭 2010-08-31
  • 打赏
  • 举报
回复


--问题一:
DECLARE @Tables VARCHAR(600)
set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
Select CharIndex('_',Substring(@tables,CharIndex('_',@tables)+1,100))
Select Substring(@tables,CharIndex('_',@tables)+1,100)

--问题二:
DECLARE @Tables VARCHAR(600)
set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
Select @tables=Substring((Substring(@tables,CharIndex('_',@tables)+2,100)),
CharIndex('_',Substring(@tables,CharIndex('_',@tables)+1,100)),100)
Select Substring(@tables,CharIndex('_',@tables)+1,100)
thinkong 2010-08-31
  • 打赏
  • 举报
回复

DECLARE @tables VARCHAR(600)
set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
select CharIndex('_',@tables)+CharIndex('_',substring(@tables,CharIndex('_',@tables)+1,len(@tables)))

需要加上被截掉的字符串的字符个数。
thinkong 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 a13062331830 的回复:]
SQL code


--问题一:
DECLARE @Tables VARCHAR(600)
set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
Select CharIndex('_',Substring(@tables,CharIndex('_',@tables)+1,100))
Select Substring(@tabl……
[/Quote]
8#这个问题一是错的,计算的是截取后的子字符串的位置
rinoya111 2010-08-24
  • 打赏
  • 举报
回复
学习下
cxmcxm 2010-08-20
  • 打赏
  • 举报
回复
DECLARE @Tables VARCHAR(600)
set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'

select charindex('_',@tables,charindex('_',@tables,1)+1)
select right(@tables,charindex('_',reverse(@tables),1)-1)
duanzhi1984 2010-08-20
  • 打赏
  • 举报
回复
DECLARE @tables VARCHAR(600)
set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'


select reverse(left(reverse(@tables),charindex('_',reverse(@tables))-1))

DedicatedMeas
王向飞 2010-08-20
  • 打赏
  • 举报
回复
DECLARE @Tables VARCHAR(600)
select @Tables='CQT_Tea.t_CQT_edMeas'

select CHARINDEX('_',@Tables,0)+CHARINDEX('_',STUFF(@Tables,1,CHARINDEX('_',@Tables,0),''),1)



DECLARE @Tables VARCHAR(600)
select @Tables='CQ_T_CQT_edMeas'

select CHARINDEX('_',@Tables,0)+CHARINDEX('_',STUFF(@Tables,1,CHARINDEX('_',@Tables,0),''),1)
SQLCenter 2010-08-20
  • 打赏
  • 举报
回复
DECLARE @Tables VARCHAR(600)
set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'

select charindex('_', @tables, charindex('_',@tables)+1) -- 20

select reverse(left(reverse(@tables), charindex('_',reverse(@tables))-1)) -- DedicatedMeas
sxtyxuewenjun 2010-08-20
  • 打赏
  • 举报
回复
简单这是属于字符串操作范畴。看看联机帮助,有问题不会自己解决是不行的
aaron_gl 2010-08-20
  • 打赏
  • 举报
回复
select reverse(right(reverse(' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'),charindex('_',' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas')-1))

34,593

社区成员

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

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