sql - 如何用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
提前致谢
解决方案
考虑加入表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
推荐阅读
- javascript - 选择器,用于获取类名 x 的所有第一个孩子
- javascript - 点击时显示多张图片
- ruby-on-rails - Ruby on Rails 没有出现引导导航栏
- intellij-idea - 如何在 JetBrains IDE 中将关键字设为斜体?
- apache-spark - Apache Spark 3 GPU 集群
- excel - 如何在excel中获取分隔符后的第n个文本
- r - Tidymodels 调整配方参数
- python - 在 Selenium python 中包含某些文本的其他 div 中选择某些 div 的方法
- python - DataFrame - 如何计算条件滚动和?
- c - 计算多项式除法的余数