sql查询包含所选列的某些单词

时间:2017-02-22 01:42:12

标签: sql oracle

请帮助我想写一个包含某些单词的脚本。 例如:

 table name : sample
 +-------+-------+
 |column1|column2|
 +-------+-------+
 |1      |help   |
 +-------+-------+

table name : sample2
+-------+-------+
|column1|column2|
+-------+-------+
|1      |help me|
+-------+-------+

我尝试写一个这样的脚本:

SELECT *FROM SAMPLE S
JOIN SAMPLE2 S2 ON S.COLUMN1 = S2.COLUMN2
WHERE S.COLUMN2 LIKE S2.COLUMN2

但" where子句"是行不通的 任何人都知道如何编写正确的脚本? 如果有的话请回答我的问题

2 个答案:

答案 0 :(得分:1)

这个where子句理想情况下应该是JOIN的一部分。

您需要使用字符串连接为通配符%添加前缀和后缀,以使其能够正常工作:

SELECT *FROM
SAMPLE S JOIN SAMPLE2 S2
ON S.COLUMN1 = S2.COLUMN1
And S2.COLUMN2 LIKE '%' || S.COLUMN2 || '%';

答案 1 :(得分:0)

更改连接条件,以便它们都使用COLUMN1,然后您希望匹配:

'help me' LIKE '%help%'

所以:

SELECT *
FROM   SAMPLE S
       JOIN SAMPLE2 S2
       ON (   S.COLUMN1 = S2.COLUMN1
          AND S2.COLUMN2 LIKE '%' || S.COLUMN2 || '%' )