如20-45-122-25-1 我想分别提取出20、45、122、25、1,当然不能根据固定长度提,数字的长度不固定,能不能根据“-”字符出现的次数提,如第一个出现的字符前面提出20,第二个字符前面提出45,依次类推,请大侠帮忙了
nomanland的方法不错
declare @s varchar(8000),@sql nvarchar(4000)
set @s='20-45-122-25-1'
set @sql='select '+replace(@s,'-',' col union all select ')
exec(@sql)
不过我希望分开提,比如先提出45, 再提出20,因为他们每组数据都有用,我不希望一下子出来一组数据,请大侠们再帮我想想
对了,能不能用几个函数分别得到20、45、122、25、1,不要复杂,我是在excel中调用,比如像left('20-45-122-25-1',charindex('-','20-45-122-25-1')-1)这样的方式,不过这个不足的是,我的字符串的位置不固定,所以这个不行。
参考资料:http://www.diybl.com/course/7_databases/sql/sqlServer/2007106/77000.html
如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
针对SQL Server的实现:当需截取字符串"OPE-CZ-108-003-SE71.2"中的"."字符前面的字符串时,可以采用如下SQL语句。结果为"OPE-CZ-108-003-SE71",取值范围从字段第一位置开始,至"."字符前一个位置结束。对于截取"."字符后面的字符串,同样使用SQL Server,只需调整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'-...
SQL如何提取第某个特定字符前后的字符?
print(s)v = re.findall(r'_.+_.+_(.+)_', s)print("---")print(v)print("===")ABC集团_A店_A楼层_ASD商品部_日化A --- ['ASD商品部']=== ABC集团_AB店_A楼层_ASDF商品部_日化B --- ['ASDF商品部']=== 是不是相要这样的结果。
SQL截取两个特定值之间的文字
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。substring函数调用方法如下:substring(string,startNumber, endNumber)返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。例子:CHARINDEX('SQL', 'Microsoft SQ...
如何用SQL 语句截取两个固定字符之间的字符串?
select substring(字符串,1,PATINDEX(<'%字符串%'>,'丘')-1) as 字符1 ,substring(字符串,PATINDEX(<'%字符串%'>,'丘')+1,PATINDEX(<'%字符串%'>,'栋')-PATINDEX(<'%字符串%'>,'丘')+1) as 字符2 from 表名
如何用sql语句实现特定字符之间的字符提取
好久没有写过SQL了,花了一个小时把你的问题解决了,加20分,快!CREATE TABLE [#tmp] ([数字] [varchar] (35) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]declare @Len int set @Len=1 declare @hen int set @hen=1 while @hen>0 begin SELECT @hen=CHARINDEX('-', substring(...
用sql语句怎么获取一句话中某个字符的位置,并把该字符后面的字符全部...
需要以下两个函数:charindex,stuff select charindex('5','1234567890') --结果为:5 select stuff('1234567890',1,charindex('5','1234567890'),'')--结果为:67890
SQL MID()函数如何从文本字段中提取字符?
SQL中的MID()函数是一个强大的工具,它用于从文本字段中截取特定字符。该函数的结构为SELECT MID(column_name, start, [length]) FROM table_name,其中column_name是你想要提取字符的字段,start是你想要开始的位置(从1开始计数),length(可选)则是你希望返回的字符数。如果省略length,MID()函数...
sql中where截取字符串字符
sql中在where字句里截取字符方法如下:1、如果是sqlserver:where left(p.end_time,4) = '2012'。2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。举例:1、oracle: 'where substr(字段名,1,2)='''123'''2、sqlserver: 'where substring(字段名,1,2...
sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。如test表中有如下数据,要求截图str字段中逗号后边的内容。可用如下语句:1 select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;结果截图:charindex函数说明:语法:CH...