需要查看一个表中的每个记录的许多记录

时间:2018-04-18 14:59:49

标签: sql oracle plsql

在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个字符串匹配的字符串的第一个字符,但为了做到这一点,我需要查看一个表中的每个字段的许多记录。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

  

我需要检索与最后一个匹配的字符串的第一个字符   给定的一个中的5个,

"第一个角色"每次运行update时,匹配都不能保证是特定字符串,除非您有任何其他可用于排序结果的唯一列,最好使用row_number()或{{1} } 功能。因此,其他选项是使用FIRST_VALUEMAX为每场比赛获取一条记录。

MIN