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')

如上,求解如何取出括号内的字符串,在不知道括号内的文字、长度的情况下。
求完整的查询语句。小弟新手,求完整语句,不要只给个参数。
展开
 我来答
hungui8
2013-04-15 · TA获得超过273个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:62.8万
展开全部
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' 中‘(’字符在字符串中的索引位置
更多追问追答
追问

create database student

go

use student

go

create table ceshi

(

 id int primary key identity,

 ce varchar(30) not null

)

insert into ceshi values('123(321)45612')

insert into ceshi values('hao123(dga32t54)baega')

insert into ceshi values('好好学习(天天向上)12dd')


大哥,帮我再看看。小弟新手。

追答
呵呵  不好意思啊 上面的就是随手写了下思路 其实是写的不对的,完整正确的如下:
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;
qinhaichao8
2013-04-15
知道答主
回答量:21
采纳率:0%
帮助的人:7.3万
展开全部
select substr(ce,instr(ce,'(')-1,instr(ce,')')) from ce
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
C不是碳
2013-04-15 · TA获得超过454个赞
知道小有建树答主
回答量:776
采纳率:50%
帮助的人:447万
展开全部
这个好像不可以把,因为你的一个值里面左边长度和右边长度都不确定,也没什么特点,咱们取出来?
追问
先查找括号出来,再取行不行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式