【发布时间】:2021-07-15 03:38:51
【问题描述】:
我有两张桌子:
Add_T
Add_ID NUMBER(10,0)
Add_GEOMETRY SDO_GEOMETRY
STRTN VARCHAR2(40 BYTE)
CITY VARCHAR2(45 BYTE)
STATE VARCHAR2(2 BYTE)
ZIPCODE VARCHAR2(10 BYTE)
HC_ID NUMBER(10,0)
P_ID NUMBER(10,0)
第二张桌子:
HC_T
HC_GEOMETRY SDO_GEOMETRY
HC_ID NUMBER(10,0)
TYPE VARCHAR2(2 BYTE)
FACY NUMBER(10,0)
COORD_X NUMBER(15,0)
COORD_Y NUMBER(15,0)
我需要更新Add_T表的HC_ID字段,我使用以下SQL语句:
update add_t set hc_Id = ( SELECT HC_ID FROM HC_T
WHERE ADD_T.P_ID = HC_T.FACY AND
HCO_T.TYPE='R' ) WHERE hc_ID IS NULL and
subtr(strtn,-4,4) = "-LOC"
它不起作用。另外,我使用了right() 函数,也得到了错误的结果。
update add_t set hc_Id = ( SELECT HC_ID FROM HC_T
WHERE ADD_T.P_ID = HC_T.FACY AND
HCO_T.TYPE='R' ) WHERE hc_ID IS NULL and
RIGHT(strtn,4) = "-LOC"
谁能说错在哪里?
【问题讨论】:
-
Oracle 没有
right()字符串函数,所以我遗漏了一些东西。 -
SUBSTR(strtn, -4, 4)在我看来不合适。此外,您说您需要更新,但没有准确解释您要做什么,并且 It doesn't work 不是有意义的问题描述。 Oracle 似乎也没有right()函数。请edit您的问题更清晰具体。