求一个查询数据的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