sql - Oracle SQL更新语句如何一次更新两行
问题描述
我试图更新表中的两行。如果我使用:
update ERNTESTUPDATE a
set (date_loaded, acad_career) = (select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where rownum=1)
where to_char(date_created) = to_char(trunc(sysdate))
;
我有 2 行更新为
11/29/18 UGRD
11/29/18 UGRD
如果我使用:
update ERNTESTUPDATE a
set (date_loaded, acad_career) = (select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where a.date_loaded = b.date_loaded )
where to_char(date_created) = to_char(trunc(sysdate))
;
我有一个错误
单行子查询返回多于一行
如何得到如下结果:
11/29/18 UGRD
11/29/18 GRAD
谢谢你,凯特
解决方案
子查询需要返回单行。当您rownum=1
在第一个条件中包含条件时,效果很好:
select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where rownum=1 -- this filter makes sure only one row is returned
如果删除该条件,则子查询将返回多行,这会使整个查询UPDATE
失败。
推荐阅读
- c++ - 移动 1001 某个值会产生与预期不同的结果
- javascript - 使用JavaScript覆盖Google Map API中标记弹出窗口上的默认文本?
- http - 只有路径变量而没有正文的 POST 请求是一种不好的做法吗?
- c# - C#如何使用AutoCompleteSource从文本框中的数据库中获取int值
- javascript - JavaScript 中的 Promise 是否类似于 Java 中的异常处理?
- amazon-web-services - 在控制台的 s3 事件通知中添加多个后缀
- python - 使用 numpy 在 for 循环内部和外部向向量添加标量之间有区别吗?
- printing - 如何在 puppeteer 中关闭铬打印屏幕?
- c# - 图像错误显示的 WPF 自定义控件
- java - Java 8 与 Java 9 之间的内存分配是否存在差异?