oracle 如何截取其中的一部分
nw1nw11
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