SQL语句如何取出一个字段中值

SQL语句如何取出一个字段中()括号中间的值字段里面的值 N条记录

ds(dDETddAIL_TYPEd41)rt
yhjds(DETddAILsdfs_TYPEd41)sdfsdf
返回结果是
dDETddAIL_TYPEd41
DETddAILsdfs_TYPEd41

正常用select语句即可。

如表test中

id   name

1     张三

2     李四


现在要求取出name中张三这两个字,可以使用如下语句:

select name from test where id=1;

或

select name from test where name='张三';
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-18
oracle用substr(原字符串,起始位置,[截取长度])和instr(原字符串,查找字符串,[起始位置],[第n个])函数,[]内的是可选参数
mysql用substring和instr()函数
大概思路是截取原字符串,从(开始,到)结束,
用instr定位(和),用substr截取
比如原字符串在变量str中
以oracle为例:substr(str,instr(str,'('),instr(str,')')-instr(str,'('))本回答被网友采纳
第2个回答  2012-12-18
DECLARE @table table (
c1 nvarchar(50)
)
INSERT INTO @table (c1) VALUES ('ds(dDETddAIL_TYPEd41)rt')
INSERT INTO @table (c1) VALUES ('yhjds(DETddAILsdfs_TYPEd41)sdfsdf')
SELECT c1 AS [Text],
[Start], [End], ([End] - [Start]) AS [Length],
SUBSTRING(c1, [Start], [End] - [Start]) AS [Result]
FROM (
SELECT c1,
CHARINDEX('(', c1) + 1 AS [Start],
CHARINDEX(')', c1) AS [End]
FROM @table
) AS tab本回答被网友采纳
第3个回答  2012-12-18
sqlserver:

SELECT substring(col1,CHARINDEX('(', col1) +1,CHARINDEX(')', col1) -CHARINDEX('(', col1)-1)
FROM table

如何用SQL语句取出数据库中的特定一条数据?
通过查询语句select * from user where id=1 我不知道你这个username指的是不是字段,如果是要取出表中某个字段的值。可以通过select 字段名1,字段名2 ... from user where id=1。-- MS sql server2005以上,ORACLE select * from (select row_number() over ( order by starttime asc) a...

sql语句如何截取某字段的一部分
(1)如果 start的索引是从1开始,则从表达式的第一个字符开始进行字符串截取,从2开始就从表达式的第二个字符开始截取,以此类推。例如:select SUBSTRING('abcde'1,2) 返回结果 ab select SUBSTRING('abcde'2,3) 返回结果 bcd select SUBSTRING('abcde'1,0) 返回结果为空 select SUBSTRING('abcde...

SQL语句如何截取字段中固定位置的值??
SQL语句如何截取字段中固定位置的值有两种方法:第一种:用到的函数:substring(' ', , )、charindex(' ',' ')从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)第二种:elect id, substr...

求一个提取字段中间数字的SQL语句
把数取出:“第”和“节”两个字占4个字符 select substring(chaptername,3,len(chaptername)-4)from chapter 如果更新到order字段:update chapter set order=convert(smallint,substring(chaptername,3,len(chaptername)-4))

求一个提取字段中间数字的SQL语句
改过了 把数取出:“第”和“节”两个字占4个字符 select substring(chaptername,3,len(chaptername)-4) from chapter 如果更新到order字段:update chapter set order=convert(smallint,substring(chaptername,3,len(chaptername)-4))

SQL取字段中某一部分特定数值
, '20\/30'),5) ELSE '' END 如果不一定是20\/30,而是与"\/"前后关联的数字(eg: 14\/20, 33\/66,等...),就麻烦了,你可能需要写一个抽取字符串的函数,如: f_substr(),然后在SQL里调用:select 用户.f_substr('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg')...

如何获取mysql中某个字段的值
可以运行SQL选择查询,SQL语句写法:select 你要获取的字段名列表 from 表名 where 筛选条件;例如获取学号是001的学生名字,运行下列SQL语句即可 select sname from students where sid='001';

SQL 怎么从一条语句中取出一个字段的值 --PHP
query = mysql_query("SELECT `sex` FROM `user` where `uname`='$x'"); $row = mysql_fetch_array($query); $y = $row['sex']; 不用谢那么多引号吧。。。变量在双引号内可以赋值的~麻烦采纳,谢谢!

sql 提取字段某位内容
将返回一个零长度的表达式。length_expression 是正整数或指定要返回的 value_expression 的字符数的 bigint 表达式。如果 length_expression 是负数,会生成错误并终止语句。如果 start_expression 与 length_expression 的总和大于 value_expression 中的字符数,则返回整个值表达式。参考资料:sql帮助 ...

sql 求字段中的中间值
declare @i int select @i=count(1) from 表名 select top 1 * from (select top (@i\/2+1) * from 表名 order by id desc ) as b order by id 初步看是这样的,不过你这个可能会有问题,如果你是六条数据id是到6,你的中间数就没法取了,因为你的中间数是3,也是4 ...

相似回答