0

我正在尝试更新 CITY 字段。这是针对加拿大地址的,但对于我的问题,我将保持简单。CITY 字段仅包含一个单词,而 STATE 字段包含多个单词(通常不超过 3 个由空格分隔的单词。),但大多数 STATE 值包含两个由空格分隔的单词。

示例:CITY 将显示 NEW,STATE 将显示 YORK NY

现在我正在尝试用它来更新 CITY 以显示 NEW YORK。还没有到我需要更新状态的部分。我猜是婴儿步。

我有的:

UPDATE TABLE
SET CITY = CITY || ' ' || SUBSTR(STATE, 1, INSTR(STATE, ' '))
WHERE SUBSTR(STATE, 1, INSTR(STATE, ' ')) IS NOT NULL;


当我刚刚运行时:

SELECT CITY || ' ' || SUBSTR(STATE, 1, INSTR(STATE, ' '))
WHERE SUBSTR(STATE, 1, INSTR(STATE, ' ')) IS NOT NULL; 


我得到了 STATE 字段的第一个字,所以它表明我有点走上正轨。

任何有关此的信息将不胜感激。

谢谢。

4

1 回答 1

0

如果您正在尝试更正数据(尽管我而不是 100% - 如果是这样的话)那么您的代码似乎很好。

创建表 t1 (city varchar2(100), state varchar2(100)) 插入 t1 值 ('NEW','YORK NY')

更新 t1 设置城市 = 城市 ||' '||SUBSTR(STATE, 1, INSTR(STATE, ' ')) 其中 SUBSTR(STATE, 1, INSTR(STATE, ' ')) 不为空;

现在城市专栏:纽约

选择状态 ,SUBSTR(STATE, length(state) -1, INSTR(STATE, ' ')) from t1
WHERE SUBSTR(STATE, 1, INSTR(STATE, ' ')) 不为空;

于 2013-10-07T16:36:33.300 回答