如何将11位数的电话号码切换为10位数 下面是SQL过程中的简短代码
创建1个表配置
CREATE TABLE [dbo].[PhoneNumberConfig] (
[PhoneNoInput] VARCHAR (15) NULL,
[PhoneNoOutput] VARCHAR (15) NULL,
[Description] NVARCHAR (150) NULL
);
--MobiFone
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('070','0120',N'Đầu số 0120 chuyển đổi thành 070');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('079','0121',N'Đầu số 0121 chuyển đổi thành 079');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('077','0122',N'Đầu số 0122 chuyển đổi thành 077');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('076','0126',N'Đầu số 0126 chuyển đổi thành 076');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('078','0128',N'Đầu số 0128 chuyển đổi thành 078');
----VinaPhone
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('083','0123',N'Đầu số 0123 chuyển đổi thành 083');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('084','0124',N'Đầu số 0124 chuyển đổi thành 084');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('085','0125',N'Đầu số 0125 chuyển đổi thành 085');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('081','0127',N'Đầu số 0127 chuyển đổi thành 081');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('082','0129',N'Đầu số 0129 chuyển đổi thành 082');
-----Viettel
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('032','0162',N'Đầu số 0162 chuyển đổi thành 032');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('033','0163',N'Đầu số 0163 chuyển đổi thành 033');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('034','0164',N'Đầu số 0164 chuyển đổi thành 034');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('035','0165',N'Đầu số 0165 chuyển đổi thành 035');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('036','0166',N'Đầu số 0166 chuyển đổi thành 036');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('037','0167',N'Đầu số 0167 chuyển đổi thành 037');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('038','0168',N'Đầu số 0168 chuyển đổi thành 038');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('039','0169',N'Đầu số 0169 chuyển đổi thành 039');
---Vietnamobile
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('056','0186',N'Đầu số 0186 chuyển đổi thành 056');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('058','0188',N'Đầu số 0188 chuyển đổi thành 058');
--Gmobile
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('059','0199',N'Đầu số 0199 chuyển đổi thành 059');
INSERT INTO PhoneNumberConfig(PhoneNoInput,PhoneNoOutput,Description)
VALUES('067','099',N'Đầu số 0992 chuyển đổi thành 0672');
功能将11位数的电话号码切换为10位数,否则将
create function dbo.GetPhoneNumber(@phoneNumber varchar(15))
returns varchar(15)
AS begin
declare @prefix992 varchar(15),
@prefix varchar(15),
@suffix varchar(15),
@phoneNumberOut varchar(15);
--get prefix phoneNo
set @prefix = left(@phoneNumber, 3);
set @prefix992 = left(@phoneNumber, 4);
set @suffix = replace(@phoneNumber, @prefix, '');
if(len(@phoneNumber)=10)
begin
select @phoneNumberOut = PhoneNoOutput + @suffix from [PhoneNumberConfig] where (PhoneNoInput = @prefix OR PhoneNoInput+'2' = @prefix992)
if(@phoneNumberOut is null Or @phoneNumberOut = '')
select @phoneNumberOut = PhoneNoInput + @suffix from [PhoneNumberConfig] where (PhoneNoOutput = @prefix OR PhoneNoOutput + '2' = @prefix992)
end
else
begin
--resets
set @prefix = left(@phoneNumber, 4);
set @suffix = replace(@phoneNumber, @prefix, '');
select @phoneNumberOut = PhoneNoInput + @suffix from [PhoneNumberConfig] where PhoneNoOutput = @prefix
end
return @phoneNumberOut;
end