在Oracle SQL Developer中,我收到错误," ORA-01427:单行子查询返回多行"当我尝试运行这行代码时。
UPDATE stream_log sl
set recordnum =
(SELECT recordnum
FROM STREAM_LOG_HISTORY slh
WHERE substr(slh.recordnum, 2, 5) = sl.recordnum);
为了尝试修复它,我尝试将代码更改为:
UPDATE stream_log sl
set recordnum =
(SELECT recordnum
FROM STREAM_LOG_HISTORY slh
WHERE substr(slh.recordnum, 2, 5) = sl.recordnum).first;
但它表示这段时间在语法上是错误的。
我需要检索与给定字符串的最后5个字符串匹配的字符串的第一个字符,但为了做到这一点,我需要查看一个表中的每个字段的许多记录。任何建议都表示赞赏。
答案 0 :(得分:0)
我需要检索与最后一个匹配的字符串的第一个字符 给定的一个中的5个,
"第一个角色"每次运行update
时,匹配都不能保证是特定字符串,除非您有任何其他可用于排序结果的唯一列,最好使用row_number()
或{{1} } 功能。因此,其他选项是使用FIRST_VALUE
或MAX
为每场比赛获取一条记录。
MIN