看看SQL又没有这样的功能?

chengpei_chen 2007-01-04 10:58:42
我现在要对传过来的变量作处理,传递过来的变量为:字符串+数字
但是我想取出其中的数字,但是字符串位数不固定,在SQL中有没有这样的只取数字的功能,比如,传参数"AAA12",只取到12,关键是前面字符串位数不固定
...全文
204 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiequanqin 2007-01-04
  • 打赏
  • 举报
回复
1、字符串中间没有数字,按照marco08(天道酬勤) 的方法比较简单
2、如果字符串中间可能有数字,就要从右边开始判断
xiequanqin 2007-01-04
  • 打赏
  • 举报
回复
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
marco08 2007-01-04
  • 打赏
  • 举报
回复
declare @str varchar(100)
set @str='AA12'
select stuff(@str, 1, patindex('%[0-9]%', @str)-1, '')
marco08 2007-01-04
  • 打赏
  • 举报
回复
declare @str varchar(100)
set @str='AAA12'
select right(@str, len(@str)-patindex('%[0-9]%', @str)+1)
--result
12
xiequanqin 2007-01-04
  • 打赏
  • 举报
回复
字符串中如果没有数字,倒是可以做到
只能自己写,没有现成的

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧