首页 > 解决方案 > 如何用sql中不同表中的另一列替换一列?

问题描述

我有两张不同的桌子。其中一个有文本数据,另一个有单词及其词干。我想查看文本数据中的所有单词,并将它们与第二个单词和词干表进行比较。如果表 TEXT_DATA 和第二个表 DICTIONARY 之间存在连接,我想将其更改为词干版本。

我只是写了一个代码,但没有工作。

text data 
TEXT
I have chocolates

DICTIONARY
  WORD_FORM  STEM     
  chocalates chocolate

SELECT 
  REPLACE(TEXT,(SELECT WORD_FORM FROM DICTIONARY),(SELECT STEM FROM DICTIONARY)) 
FROM TEXT_DATA

我想看到我的新文本:I have chocolate

提前致谢

标签: sqloraclereplace

解决方案


考虑加入表INSTR()

SELECT 
  REPLACE(t.TEXT, d.WORD_FORM, d.STEM) AS NEW_TEXT 
FROM TEXT_DATA t
INNER JOIN DICTIONARY d 
    ON INSTR(t.TEXT, d.WORD_FORM, 1, 1) > 0

推荐阅读