SQL中如何从字符串中取值。
createtablece(idintprimarykeyidentity,cevarchar(30)notnull)insertintocevalues('123(32...
create table ce
(
id int primary key identity,
ce varchar(30) not null
)
insert into ce values('123(321)45612')
insert into ce values('hao123(dga32t54)baega')
insert into ce values('好好学习(天天向上)12dd')
如上,求解如何取出括号内的字符串,在不知道括号内的文字、长度的情况下。
求完整的查询语句。小弟新手,求完整语句,不要只给个参数。 展开
(
id int primary key identity,
ce varchar(30) not null
)
insert into ce values('123(321)45612')
insert into ce values('hao123(dga32t54)baega')
insert into ce values('好好学习(天天向上)12dd')
如上,求解如何取出括号内的字符串,在不知道括号内的文字、长度的情况下。
求完整的查询语句。小弟新手,求完整语句,不要只给个参数。 展开
3个回答
展开全部
substring((select 字段名 from 表名 where id=1),charindex('(',select 字段名 from 表名 where id=1))+1,charindex(')',select 字段名 from 表名 where id=1))-charindex('(',select 字段名 from 表名 where id=1)))
就是两个函数
substring("1231",1,2) ="12" 1起始位置 2截取长度
charindex('(','ab(cd')=3 获取在字段'ab(cd' 中‘(’字符在字符串中的索引位置
就是两个函数
substring("1231",1,2) ="12" 1起始位置 2截取长度
charindex('(','ab(cd')=3 获取在字段'ab(cd' 中‘(’字符在字符串中的索引位置
更多追问追答
追问
追答
呵呵 不好意思啊 上面的就是随手写了下思路 其实是写的不对的,完整正确的如下:
select SUBSTRING((select ce from ceshi where id=1),(select charindex('(',ce) from ceshi where id=1)+1,(select charindex(')',ce) from ceshi where id=1) - (select charindex('(',ce) from ceshi where id=1)-1);结果为321 第一个数据
其中的几个select 语句可以让你关联任何表的内容去查 不关联的话不用那么多select 直接查字段内的索引位置 直接select SUBSTRING(ce,charindex('(',ce)+1,charindex(')',ce) - charindex('(',ce)-1) from ceshi where id=1;
展开全部
select substr(ce,instr(ce,'(')-1,instr(ce,')')) from ce
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个好像不可以把,因为你的一个值里面左边长度和右边长度都不确定,也没什么特点,咱们取出来?
追问
先查找括号出来,再取行不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |