我需要一个select函数,如果该行的a列包含用户输入的单词列表中的任何单词
SELECT *
FROM MyTable
WHERE ColumnA CONTAINS ANY 'list of word'
由于单词列表的单词数量未知,所以我将整个列表存储在同一个字符串中。每个单词可以用"_", "-"或者留白
如果您正在使用oracle,您可以尝试这样做:
SELECT * FROM MyTable WHERE ColumnA in (select upper(regexp_substr('word1-
word2-word3','[^-]+',1,level)) from dual
connect by upper(regexp_substr('word1-word2-word3','[^-]+',1,level)) is
not null)
如果你使用"_"然后将连字符替换为下划线是regexp_substr参数。
我想出了这个解决方案:
SELECT *
from TableA tb
RIGHT JOIN STRING_SPLIT ( 'list of words' , 'seperator' ) v on tb.ColumnA = v.value
WHERE tb.ColumnA IS NOT NULL