sql - 随机连接表并返回列
问题描述
我有这 3 张桌子:
CREATE TABLE DimEmployee(EmployeeID INT)
CREATE TABLE DimDepartment(DepartmentID INT)
CREATE TABLE DimDocteur(PositionID INT)
INSERT INTO DimEmployee(EmployeeID) VALUES (1),(2),(3)
INSERT INTO DimDepartment(DepartmentID) VALUES (1),(5),(6)
INSERT INTO DimPosition(PositionID) VALUES (7),(8),(9)
我想随机加入 3 个表并获得如下输出:(示例)
首先执行:
EmployeeID DepartmentID PositionID RandomDate
1 4 7 2020-07-24 00:00:00.000
2 5 9 2020-11-25 00:00:00.000
第二次执行:
EmployeeID DepartmentID PositionID RandomDate
1 4 7 2020-05-04 00:00:00.000
2 5 9 2020-10-30 00:00:00.000
解决方案
如果你想要一个随机加入:
SELECT DP.EmployeeID, Q.Department INTO #T1
FROM DimEmployee AS DP
CROSS APPLY (SELECT TOP 1 Dd.DepartmentID FROM DimDepartment AS DD
ORDER BY NEWID() ) AS Q
SELECT *
INTO #T2
FROM #T1 AS T
CROSS APPLY (SELECT TOP 1 DP.PositionID FROM DimPosition AS DP
ORDER BY NEWID() ) AS Q
或者,如果您想要所有可能性:
SELECT
a.EmployeeID, b.DepartmentID, c.PositionID
FROM
DimEmployee AS a
CROSS JOIN
DimDepartment AS b
CROSS JOIN
DimPosition AS c
推荐阅读
- javascript - 如何“劫持”一个 iframe 标签并放入一个 div?
- powerpoint - 有没有办法以编程方式显示 PowerPoint 语言对话框?
- javascript - 即使在 React JS 中提交按钮后如何保留状态变量值
- powershell - 在调用 Invoke-Sqlcmd 命令获取用户的最后登录日期时,输出接收为系统日期格式
- javascript - 打印未知数量的基于 cb 的异步函数的合并结果
- wordpress - 从 wordpress 记录邮件/垃圾邮件
- magento2 - 在 null 上调用成员函数 quoteIdentifier()
- javascript - 是否可以共享其值从数据库接收的常量变量?
- reactjs - 对象作为 React 子对象无效(找到:带有键 {isReady} 的对象)。如果您打算渲染一组孩子,请改用数组
- heroku - Ephemeral filesystem and dynos restart