从字符串中删除破折号和前导零

时间:2018-10-03 09:48:30

标签: mysql sql

有人知道如何删除MySQL存储过程中的零和破折号吗?我想将此00000000-0000-0000-0843-243219876432转换为此843243219876432

ALTER PROCEDURE [dbo].[SendDistance]
@DeviceImei VARCHAR(50),
@Distance VARCHAR(MAX),
@DateTime VARCHAR(MAX)
AS 
BEGIN 
 insert into dbo.Location values (
 @DeviceImei,
 0  ,
 0,
 @Distance,
 @DateTime  
 )
 select REPLACE(@DeviceImei,'0','') From dbo.Device where @DeviceImei = Imei



end

3 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:-

DECLARE @n NVARCHAR(max)='00000000-0000-0000-0843-243219876432'

SELECT CAST(REPLACE(@n,'-','') AS NUMERIC(38,0))
                      -- OR
SELECT CAST(REPLACE(@n,'-','') AS BIGINT)

答案 1 :(得分:0)

您可以尝试使用REGEXP_REPLACE()

select REGEXP_REPLACE('00000000-0000-0000-0843-243219876432', '[0/-]+', '')

答案 2 :(得分:0)

我将REPLACECAST一起使用。

SELECT CAST(REPLACE('00000000-0000-0000-0843-24321987643','-','')  AS unsigned)

如果0之后有一些24321987643,它也可以工作。