朋友今天突然问说想要一个..随机生成电话号码的SQL语句.内容是 6 + 7位的随机数...于是写了一个..
select '6' + left(cast( (cast(ceiling(rand()*10000000) as int) + 1000000) as char),7)
然后在执行的时候..发现居然全是相同的值..为啥呢?因为种子是相同的..于是修改了种子值..
select '6' + left(cast( (cast(ceiling(rand(checksum(newid()))*10000000) as int) + 1000000) as char),7)
这样理论上是不会相同了..
嗯..然后又看了一下.发现貌似写的有问题..太麻烦了..
select cast((cast(ceiling(rand(checksum(newid()))*10000000) as int) + 60000000) as char)
这样更简单一些..嘎嘎~