注册 登录
编程论坛 SQL Server论坛

[求助]如何截取“出口规格”字段中,两个*间的字符串?

roy78 发布于 2007-10-15 13:08, 1168 次点击
substring(出口规格,0,charindex('*',出口规格) 这段可以取到第一个*号左边的字串,现在想截取“出口规格”字段中两个*号间的字串(长度不等),还望高手指点一下,在线等。。。
只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-10-15 13:08:49编辑过]

8 回复
#2
心中有剑2007-10-15 14:15
charindex 有参数的!自己看看吧!第一个会的话 应该中间的也应该明白,看看参数 缺省的参数是写什么就明白了
#3
purana2007-10-15 14:25

declare @a table(出口规格 varchar(200),出口重量 decimal(10,3))
insert @a select '0.27*1003*C',143.995
union all select '0.3*1003*C',695.085
union all select '0.3*1040*C',18.18

select 出口=substring(出口规格,charindex('*',出口规格)+1,len(出口规格)-charindex('*',出口规格)-2),出口重量
from @a

#4
西风独自凉2007-10-15 14:30
select substring(出口規格,charindex('*',出口規格,1)+1, charindex('*',出口規格,charindex('*',出口規格,1)+1) - charindex('*',出口規格,1)-1)  from table
#5
purana2007-10-15 14:32
原来charindex有第三个参数的.现在才知.
#6
roy782007-10-15 14:56
晕呼,哈哈。老大们真厉害,菜鸟的我在看到各位高手的答案之前最多只能做到select substring(出口規格,charindex('*',出口規格,1)+1,

后面可真不会写了。临时写了一个(用RIGHT来取)是 select substring(出口规格,charindex('*',出口规格)+1,convert(float,right(出口规格,2))) as 出口厚度
from 表
可是转制类型错误,谢谢各位,问题已经解决了,今天又有收获,呵呵,菜菜的我前两天也回答了一个新人的问题,这里的氛围真的好好,再次感谢大家。
另,希望大家对我上面的语句作出改正,它提示转换类型失败。。。
#7
西风独自凉2007-10-15 15:19
substring 的第三個參數怎麼能用float
#8
bygg2007-10-15 15:20
convert(float,right(出口规格,2))  没必要用这个.就用上面给的方法就行了
#9
jxnuwy042007-10-15 15:31

如果是只有两个*的话那么就可以取第一个*和最后一个*之间的字符串。

1