我需要传递一个不在DB表中的员工详细信息列表(EmpNo, Dept)(从另一个系统作为JSON数组获取)。我必须在一个选择查询中使用它们作为一个具有内部连接的表。这在Oracle 11g中是可能的吗?如果有,请解释。
请注意,我没有任何创建函数或过程的权限。
,
Emp Details:
{"EmpNo":"1", "Dept":1},{"EmpNo":"2", "Dept":1},{"EmpNo":"3", "Dept":2},{"EmpNo":"4", "Dept":2}
SQL:
SELECT * FROM attendance att
INNER JOIN (Emp Details) emp
ON att.EmpNo = emp.EmpNo
WHERE emp.Dept = 1
我发现在SQL server中可以这样做,但是在oracle中没有运气
SELECT * FROM
(VALUES (1,2) , (3,4)
) t1 (c1, c2)
提前感谢!
下面的代码可能会对你有所帮助。
SELECT * FROM
(
(SELECT 1 AS EmpNo,2 AS Dept FROM DUAL)
UNION
(SELECT 3 AS EmpNo,4 AS Dept FROM DUAL)
) t1
您可以使用JSON_QUERY()和json_table()的公共表表达式,如下所示:
Schema和insert语句:
create table attendance (EmpNo int,attn_date date);
insert into attendance values(2,DATE '2021-09-02');
insert into attendance values(3,DATE '2021-09-03');
查询:
with emp_json as
( SELECT JSON_QUERY('[{"EmpNo":"1", "Dept":1},{"EmpNo":"2", "Dept":1},{"EmpNo":"3", "Dept":2},{"EmpNo":"4", "Dept":2}]', '$' ) AS EmpDetails
FROM DUAL
)
SELECT emp.EmpNo , emp.Dept
FROM json_table( (select EmpDetails from emp_json) , '$[*]'
COLUMNS ( EmpNo PATH '$.EmpNo'
, Dept PATH '$.Dept'
)
)emp
inner join attendance att
ON att.EmpNo = emp.EmpNo
输出:
部门
相关内容
- 在Oracle SQL的逗号分隔列表中使用IN操作符
- 是否可以使用 SQL 或 PL/SQL 迭代字符串列表并根据当前值有条件地查询 oracle 数据库表
- 我如何选择从一个静态列表的元组在Oracle SQL?
- 如何在Oracle apex中使用javascript将列表重置为空白
- 在Oracle的select查询中使用值列表作为表
- oracle如何从日期列表生成周期列表
- 可以:xdo_user_name在Oracle bi publisher的值列表中使用?或者只适用于数据集
- 在Oracle中选择入围时区列表
- Oracle Apex -链接到与选择列表中的值相同的页面
- 如何用序列号更新oracle列表列
- 有没有人尝试使用交叉表而不是 oracle-apex 值列表的存储方法
- 获取唯一列和实际长度的列表(Oracle)
- 我想链接LOV和选择列表.(Oracle APEX 21.1)
- 逗号分隔列表 Oracle SQL
- 获取最近 5 个工作日并排除节假日列表 Oracle DB
- 使用不喜欢选择未按预期执行的数字列表-Oracle SQL
- 选择列表oracle顶点秒值
- 参考值列表(Oracle APEX)中的NULL
- 错误:关键字丢失,而插入多列表- Oracle 11g
- 设置默认参数为字符串列表Oracle PLSQL
最新更新
- GitHub上下文变量未针对可重用工作流引用进行评估
- 停止滑动眼睛.IO克隆,相位器3
- 我正在尝试运行美洲驼索引模型,但是当我进入索引构建步骤时 - 它一次又一次地失败,我该如何解决这个问题?
- 502坏网关与Nginx服务器托管.net核心项目
- LG Hub Script Non-Functional
- c -对齐检查在WebAssembly时,模拟XMM的内在?
- 我的多线程代码与c++不能正常工作
- 如何在SQL数据库行中存储一对多关系?
- 向b-tree索引更新具有相同值的列
- 在c++中,用引号和空格之间的键/值加载文件的最有效方式是什么?
- Java多线程并发与并行
- 在启动画面中淡入和淡出图像
- 多个模型到一个manytomanyfield表
- Javascript-如果array2部分排序为array1,则检查数组
- 为什么我的Biquad过滤器没有从我的噪音正确断开?
- 删除nullptr对象可能调用也可能不调用释放函数.为什么不保证后者呢?
- Azure SQL Hyperscale-0个辅助副本
- 我使用的只是音频在扑动应用程序,从url播放,在真实设备上的一段时间后,应用程序停止,试图在后台播放音频
- 使用正则表达式模式的小写文本
- Java -不同语言的字符串
- c - WSL:功能未实现
- 我如何轻松地重新安装所有卸载的VS Code扩展,他们的文件仍然徘徊在我的~/.vscode /扩展文件夹吗?<
- 使用MS Graph API在应用注册中添加更多应用角色
- PAC文件未正确筛选网站
- 返回一个字典,每个字符都有多个实例
- AWS S3 -仅Zip文件对象,而不是路径
- 公共api如何处理CORS起源和jwt ?
- 如何摆脱实际上"duplicates"几乎等同的调用行,实际上只切换了部分列数据?
- 如何在换行时中断文本?
- 使用流JAVA 8将map转换为特定的dto对象
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium