我认为那些应该是TAB2中的专栏?如果是这样,您需要删除引号:
UPDATE TAB1 s
SET s.user_NUM =
(select e.USER#
from TAB2 e
where (e.LAST_NAME||', '||E.FIRST_NAME)= s.DEALER);
Run Code Online (Sandbox Code Playgroud)
否则你想要匹配TAB1中的记录where DEALER = 'e.LAST_NAME, E.FIRST_NAME'(即文字),我认为这根本不是你的意思.
"当我在逗号后面放置一个空格时,我得到一个错误,即单行查询返回多行."
因此,TAB2中的多行与TAB1中的行匹配.这现在成为您数据的调查.
如果只有一个发生e.USER#了e.LAST_NAME||', '||E.FIRST_NAME你很好:只需将它添加到DISTINCT子查询.用以下方法检查:
select e.LAST_NAME||', '||E.FIRST_NAME
, count(distinct e.USER#)
from TAB2 e
group by e.LAST_NAME||', '||E.FIRST_NAME
having count(distinct e.USER#) > 1
Run Code Online (Sandbox Code Playgroud)
如果该查询返回任何行,您将需要决定如何处理多个匹配.
同样,如果TAB2中没有与TAB1中的行匹配的行,则需要确定要采取的操作.此刻将设置s.user_NUM为NULL.也许这就是你想要的.
这些是关于业务规则的决定:只有您知道自己想要做什么.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |