我有两个表。需要使用大查询SQL在表2的用户列中随机列出名称字段。有人能帮助我吗?
表一
| 识别码|名称名称名称|
| - -|- -|
| 一个|汤姆|
| 2个|杰克|
| 三个|哈里|
表二
| 月份|年份|用户名|
| - -|- -|- -|
| 扬|小行星2023||
| 二月|小行星2023||
| 马尔|小行星2023||
| 四月|小行星2023||
| 五月|小行星2033||
我有两个表。需要使用大查询SQL在表2的用户列中随机列出名称字段。有人能帮助我吗?
表一
| 识别码|名称名称名称|
| - -|- -|
| 一个|汤姆|
| 2个|杰克|
| 三个|哈里|
表二
| 月份|年份|用户名|
| - -|- -|- -|
| 扬|小行星2023||
| 二月|小行星2023||
| 马尔|小行星2023||
| 四月|小行星2023||
| 五月|小行星2033||
2条答案
按热度按时间n53p2ov01#
首先生成
tbl1
和tbl2
两个表,然后在tbl1
中添加一个行号id_ok
,在helper
表中提取tbl1
的最大行号。floor((max_.A)*rand())+1 as id_ok
rand
生成一个介于0和1之间的数字。乘以表tbl1
的行号(max_.A
)并向下舍入floor
,得到0到row_number-1之间的范围。因此,我们将+1
相加,并将其命名为id_ok
。在最后一步中,我们将辅助对象table
与tbl1_
合并。flvlnr442#
请尝试以下方法:
我创建了一个cte表add_t2_id,它将table_2的行与随机数
cast(ROUND(1 + RAND() * (3 - 1)) as int64) as rand_val
配对(生成1 - 3的随机数),然后创建了一个连接add_t2_id和table_1的查询,将add_t2_id生成的随机数与table_1中的id联系起来。样品结果: