首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

看看SQL又没有这样的功能?解决办法

2012-01-09 
看看SQL又没有这样的功能?我现在要对传过来的变量作处理,传递过来的变量为:字符串+数字但是我想取出其中的

看看SQL又没有这样的功能?
我现在要对传过来的变量作处理,传递过来的变量为:字符串+数字
但是我想取出其中的数字,但是字符串位数不固定,在SQL中有没有这样的只取数字的功能,比如,传参数 "AAA12 ",只取到12,关键是前面字符串位数不固定

[解决办法]
字符串中如果没有数字,倒是可以做到
只能自己写,没有现成的
[解决办法]
declare @str varchar(100)
set @str= 'AAA12 '
select right(@str, len(@str)-patindex( '%[0-9]% ', @str)+1)
--result
12

[解决办法]
declare @SQL_ALL CHAR(255)
declare @SQL_CHAR CHAR(255)
declare @SQL_INT CHAR(255)
declare @SQL_LEN INT
declare @INT_LEN INT

select @SQL_ALL= 'AA121334A16552 '
SELECT @SQL_LEN=len(@SQL_ALL)
select @INT_LEN=1
while SUBSTRING(@SQL_ALL,@SQL_LEN-@INT_LEN,1) BETWEEN '1 ' AND '9 '
SELECT @INT_LEN=@INT_LEN+1

SELECT RIGHT(RTRIM(@SQL_ALL),@INT_LEN)

--------------
16552
[解决办法]
1、字符串中间没有数字,按照marco08(天道酬勤) 的方法比较简单
2、如果字符串中间可能有数字,就要从右边开始判断

热点排行