当前位置:编程学习 > C#/ASP.NET >>

oracle 如何截取其中的一部分

nw1
nw11
n2
nw21
222
nw3 ……
如何截取期中的数字,然后在前面补0,补成10位,饭后排序,取最大和最小。
如最小值0000000001 最大值0000000021

谢谢 --------------------编程问答-------------------- ORACLE不知道,Sql Server这里有个方法,可以参考下:

ALTER FUNCTION dbo.F_Get_No 

@No varchar(100) 

RETURNS NVARCHAR(20) 
AS 
BEGIN 
WHILE PATINDEX('%[^0-9]%',@No)>0 
BEGIN 
SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分 
END 
DECLARE @len int
SET @len = case when len(@No) >= 10 then len(@No) else 10 - len(@No) end
WHILE @len > 0
BEGIN
SELECT @No = '0' + @No,@len = @len - 1
END 
RETURN @No
END 


print dbo.F_Get_No('1aal8')
/*结果
0000000018
*/
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,