① sql 取字段中的部分数据
declare @t table(col1 varchar(10))
insert into @t
select '0.2g*6' union
select '2ml*10' union
select '20mg*20'
select col1,
SUBSTRING(col1,0,CHARINDEX('*',col1)) '*前',
substring(col1,0,patindex('%[a-z]%',col1)) '数字'
from @t
----
(3 row(s) affected)
col1 *前 数字
---------- ---------- ----------
0.2g*6 0.2g 0.2
20mg*20 20mg 20
2ml*10 2ml 2
(3 row(s) affected)
② sql 提取字段某位内容
Select
substring
(字段,5,6)
可以提取字段内
5-10位的内容
但如果字段值长度本身不足5位,就取不到了
③ 跪求各位大侠!怎样提取sql字段存储的字符串中的单个字符
我这里由一个存储过程可以把逗号前面第一个词取出来,你用个循环就可以把所有的都取出来了
CREATE
PROCEDURE
PopFirstWord
@SourceString
NVARCHAR(4000)
=
NULL
OUTPUT,
@FirstWord
NVARCHAR(4000)
=
NULL
OUTPUT
AS
SET
NOCOUNT
ON
DECLARE
@Oldword
NVARCHAR(4000)
DECLARE
@Length
INT
DECLARE
@CommaLocation
INT
SELECT
@Oldword
=
@SourceString
IF
NOT
@Oldword
IS
NULL
BEGIN
SELECT
@CommaLocation
=
CHARINDEX(',',@Oldword)
SELECT
@Length
=
DATALENGTH(@Oldword)
IF
@CommaLocation
=
0
BEGIN
SELECT
@FirstWord
=
@Oldword
SELECT
@SourceString
=
NULL
RETURN
0
END
SELECT
@FirstWord
=
SUBSTRING(@Oldword,
1,
@CommaLocation
-1)
SELECT
@SourceString
=
SUBSTRING(@Oldword,
@CommaLocation
+
1,
@Length
-
@CommaLocation)
RETURN
@Length
-
@CommaLocation
END
RETURN
0
④ 查询数据库中某个字段的sql语句怎么写
1、在计算机中,打开Oracle的连接程序,用新建的数据库管理员,进入【Oracle控制】的窗口上,鼠标左键单击【服务器】按钮,并选择【SQL工作表】,如下图所示。
⑤ sql 如何截取一个字段里某一字符串中间的字符
--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空格,不能有的是一个空格有的是两个。也就是格式要固定。
--定义参数
create table #a (string varchar(max))
declare @sql varchar(max)
declare @a varchar(max)
select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--这个是要查询的字符串
---------------------------查询qwer后面的字符串----------------------------------------
while charindex('qwer',@a)<>0
begin
select @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)
insert into #a values (@a)
end
select SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a
--查询结果
result
zxcv
yuchor
abcd
⑥ sql 提取字段某位内容
substring(字段,5,10-5+1)
建议你看看sql的帮助。
语法
SUBSTRING ( value_expression ,start_expression , length_expression )
参数
字词
定义
value_expression
是 character、binary、text、ntext 或 image 表达式。
start_expression
指定返回字符的起始位置的整数或 bigint 表达式。如果 start_expression 小于 0,会生成错误并终止语句。如果 start_expression 大于值表达式中的字符数,将返回一个零长度的表达式。
length_expression
是正整数或指定要返回的 value_expression 的字符数的 bigint 表达式。如果 length_expression 是负数,会生成错误并终止语句。如果 start_expression 与 length_expression 的总和大于 value_expression 中的字符数,则返回整个值表达式。
⑦ SQL 怎么取到某字段内的部分
语句:
select substr(oid,instr(oid,'.')+1,(instr(oid,'.',1,2)-instr(oid,'.')-1) from table1;
函数:
1.INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr('oracle traning','ra',1,2) instring from al;
INSTRING
---------------------------------------
9
2.SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SQL> select substr('13088888888',3,8) from al;
SUBSTR('
-------------------------------------
08888888
⑧ SQL语句如何取出一个字段中值
oracle用substr(原字符串,起始位置,[截取长度])和instr(原字符串,查找字符串,[起始位置],[第n个])函数,[]内的是可选参数
mysql用substring和instr()函数
大概思路是截取原字符串,从(开始,到)结束,
用instr定位(和),用substr截取
比如原字符串在变量str中
以oracle为例:substr(str,instr(str,'('),instr(str,')')-instr(str,'('))
⑨ 如何从sql字段里提取字符串
CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。