【发布时间】:2023-04-09 12:12:01
【问题描述】:
我正在尝试更新数据库中的一些信息,因为在有前缀时错误地使用了姓氏。
我已经构建了以下内容:
UPDATE subject_detail_overall sdo
JOIN subject_detail_personal sdp ON sdo.subject_id = sdp.subject_id
SET name_lessformal =
IF (sdp.sex = 1) THEN
sdo.name_lessformal := substr(sdo.name_lessformal,1,7)||upper(substr(sdo.name_lessformal,8,1))||substr(sdo.name_lessformal,9)
ELSIF (sdp.sex = 2) THEN
sdo.name_lessformal := substr(sdo.name_lessformal,1,5)||upper(substr(sdo.name_lessformal,6,1))||substr(sdo.name_lessformal,7)
END IF
WHERE (sdp.sex = 1 OR sdp.sex = 2) AND
((sdp.name_birthnameprefix IS NOT NULL AND ((sdp.useofname = 2) OR (sdp.useofname = 3)))
OR (sdp.name_partnernameprefix IS NOT NULL) AND ((sdp.useofname = 1) OR (sdp.useofname = 4)))
这是在前缀的第一个字母前面只有一个miss或mister时将其转为大写。
useofname 是使用的姓氏以及使用顺序(partnername-birthname,仅 partnername 等)
看来我不能在那个地方使用 join,但我不知道如何重塑查询以使其正常工作。
【问题讨论】:
标签: sql oracle sql-update