【SQLServer】函数生成随机手机号

该博客介绍了如何在SQLServer中创建一个函数GetRandPhoneNum,用于生成11位的随机手机号码,支持指定运营商号段或随机选择。函数接受运营商参数和随机种子,通过运算生成不重复的手机号码,可用于测试场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、业务场景

实际业务开发需要模拟用户11位手机号,数据库如何快速生成随机不重复号码?


2、知识前提

11位手机号码参考百度说明:
在这里插入图片描述


3、实现方案

SQLServer编写函数,生成随机11位测试用手机号,只考虑MAC段,前三位符合手机号码段规范。
函数GetRandPhoneNum入参说明:
@operator表示号段;
@seed表示随机种子,固定newid()

具体sql语句:

--sqlserver生成11位测试用随机手机号GetRandPhoneNum
if exists(select 1 from sysobjects where id=OBJECT_ID('GetRandPhoneNum'))
	drop function GetRandPhoneNum
go
create function GetRandPhoneNum(@operator nvarchar(50)='0',@seed nvarchar(36))
returns nvarchar(11)
as
begin
	--@operator:0-随机,1-中国电信号段,2-中国联通号段,3-中国移动号段,4-中国广电号段
	--@seed:固定传入newid(),函数不支持newid和rand
	declare @phongNum nvarchar(11)--随机手机号码
	declare @operatorStart nvarchar(3)--3位运营商号码段
	declare @randNum nvarchar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值