日期:2014-05-18  浏览次数:20494 次

求一个查询数据的SQL语句!!!
如果表a中某一列中有像以下这种字符串的数据即
列名假如是:                             a
这一列有如下这样的数据:
                                                12双/个
                                                12.385千克/件
在查询分析器里面执行完SQL语句后得到的结果是:
列名:a
          12
          12.385
也就是执行语句后,产生的结果中这一列当中都是数据,没有后面的汉字了

------解决方案--------------------
create table #temp(a varchar(50))
insert #temp
select '12双/个 ' union all
select '12.385千克/件 '

select left(a,len(a)-patindex( '%[0-9]% ',reverse(a))+1) from #temp


------------
12
12.385

------解决方案--------------------
也可以用函数:
create function f1(
@var varchar(2000))
returns varchar(2000)
as
begin
declare @v int,@i int,@var2 varchar(2000)
select @i=0,@v=len(@var)
while(@i <=@v)
begin
if(ascii(@var2)> 128) break
select @var2=substring(@var,@i,@i+1)
select @i=@i+1
end

return substring(@var,0,@i-1)
end