当前位置: 首页 > 面试题库 >

用一个随机生成的数字创建一个临时表名

罗光华
2023-03-14
问题内容

到目前为止,我有以下代码:

declare @random int, @upper int, @lower int, @rndtb varchar(20)
set @lower = 1
set @upper = 999
select @random = ROUND(((@upper - @lower) * rand() + @lower),0)
select @rndtb = '##show'+cast(@random as varchar(20))+''

但这给了我

将varchar值’## show’转换为数据类型int时,转换失败。

我想要实现的是每次执行查询时都创建一个表## show + random number。

例子 :

##show01
##show78
##show43

用@bluefeet所说的内容进行编辑,并找到了一种使用以下方法创建表的方法

Declare @SQL VarChar(1000)

SELECT @SQL = 'Create Table ' + @rndtb + '('
SELECT @SQL = @SQL + 'ID int NOT NULL Primary Key, FieldName VarChar(10))'

Exec (@SQL)

但是如何调用或插入此表?


问题答案:

由于@random要将参数添加到字符串中,因此需要将其强制转换为varchar,以便可以将其串联到字符串部分:

select @rndtb = '##show'+cast(@random as varchar(20))+''

您的完整代码将是:

declare @random int, @upper int, @lower int, @rndtb varchar(20)
set @lower = 1
set @upper = 999
select @random = ROUND(((@upper - @lower) * rand() + @lower),0)
select @rndtb = '##show'+cast(@random as varchar(20))+''

根据您的编辑,您将需要使用动态sql插入到新表中:

select @SQL = 'insert into '+@rndtb+'
        select *
        from yourtable'


exec (@sql)


 类似资料:
  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 我有一个脚本,当加入时随机生成一个房间id。我想通过点击一个按钮复制那个ID。这将是一个简单的工作输入元素,然而,我不知道如何目标随机ID编辑和操作它。我怎么能那么做? null null 加入房间时已生成房间ID。我只需要把它拷贝到剪贴板上。添加“createroom”代码。

  • 问题内容: 如何在Java中创建20个随机字节的数组? 问题答案: 尝试方法:

  • 问题内容: 我正在寻找生成一个随机数,该随机数不在另一张桌子上。 例如:如果一个表称为具有值。 除上述值外,我还想生成一个数字。 我尝试了以下查询。 询问 但是有时此查询不返回任何内容。 因为那时候它生成表中存在的数字。 如何解决这个问题? 小提琴供参考 问题答案: 另一个选择,我一直喜欢随机排序,并且交叉联接非常有效地创建了许多行: 演示:SQL Fiddle

  • 问题内容: 我将如何列出N个(例如100个)随机数,使其总和为1? 我可以用 我将如何修改此列表,使其总数为1(这是用于概率模拟)。 问题答案: 实际上,最简单的解决方案是采用N个随机值并除以和。 一种更通用的解决方案是使用Dirichlet发行版 http://en.wikipedia.org/wiki/Dirichlet_distribution (可在numpy中获得)。 通过更改分布的参数

  • 我有一个数字列表,比如 在实际代码中,这是从数据库生成的,所以这个数组最多可以容纳500个彼此不同的数字。 数据库中的每个数字都有发生的概率。所以我有一个以前执行的数据来生成从1到500的随机数,并记录了每个数生成1000次的概率。 现在有了数字列表和每个数字的概率,我想写一个函数,根据这些500个数字的概率,从中生成一个随机数。 例如: 所以变量$finallist看起来像这样: 现在,如果我运