Tsql 随机数
我已经能够随机日期与以下代码Tsql 随机数,tsql,Tsql,我已经能够随机日期与以下代码 DATEADD (day, CAST (RAND () * 365 as int), '2010-1-1') 我现在需要对1到7和1到126之间的数字进行计算 你能帮忙吗 SELECT 'Booking_' + Cast(Seed.Seed as varchar(25)) as BookingNo, DATEADD(day, ABS(CHECKSUM(NEWID()) % 800), '1 Jan 2010') as ArrivalDate, DA
DATEADD (day, CAST (RAND () * 365 as int), '2010-1-1')
我现在需要对1到7和1到126之间的数字进行计算
你能帮忙吗
SELECT 'Booking_' + Cast(Seed.Seed as varchar(25)) as BookingNo,
DATEADD(day, ABS(CHECKSUM(NEWID()) % 800), '1 Jan 2010') as ArrivalDate,
DATEADD (day, CAST (RAND () * 365 as int), '2010-1-1') % 6 + 1 as PitchType
FROM Seed CROSS JOIN
Seed AS Seed_1 CROSS JOIN
Seed AS Seed_2 CROSS JOIN
Seed AS Seed_3 CROSS JOIN
Seed AS Seed_4 CROSS JOIN
Seed AS Seed_5
如果您有一个数字表,这是非常简单的,例如内置的数字表 在1到7之间
select top 1 number
from master..spt_values
where type ='p'
and number between 1 and 7
order by newid()
在1到126之间
select top 1 number
from master..spt_values
where type ='p'
and number between 1 and 126
order by newid()
继续执行查询,您将看到每次都会得到不同的数字如果您有一个数字表,这非常简单,例如内置的数字表 在1到7之间
select top 1 number
from master..spt_values
where type ='p'
and number between 1 and 7
order by newid()
在1到126之间
select top 1 number
from master..spt_values
where type ='p'
and number between 1 and 126
order by newid()
继续执行查询,您将看到每次使用时都会得到不同的数字:
SELECT CAST(RAND(CHECKSUM(NEWID())) * 7 + 1 AS INT)
其中7是随机性的上界 您可以使用:
SELECT CAST(RAND(CHECKSUM(NEWID())) * 7 + 1 AS INT)
其中7是随机性的上界 对不起,我没有正确解释下一行是随机数不是日期。对不起,我没有正确解释下一行将是一个随机数而不是日期。嗨,SQLMencae,我已将我的sqlcode添加到我的原始帖子中,以便您可以看到我所做的。嗨,SQLMencae,我已将我的sqlcode添加到我的原始帖子中,以便您可以看到我所做的。嗨,Matt,非常感谢。如果我想在行中添加一个case语句,例如case,当选择PitchTypeWeighting from PitchType=4,然后选择40%的预订量等时,我将如何执行此操作?您可以将其包装在case语句中。选择CASE CASTRANDCHECKSUMNEWID*7+1作为INT当1时,然后当2时,然后等etch蚀刻Matt perfect谢谢。如果我想在行中添加一个case语句,例如case,当选择PitchTypeWeighting from PitchType=4,然后选择40%的预订量等时,我将如何执行此操作?您可以将其包装在case语句中。选择CASE CASTRANDCHECKSUMNEWID*7+1作为INT当1时,然后当2时,依此类推