我有一个名为DUMMY_TAB
的表,其列COLOR
包含逗号分隔值RED,BLUE,WHITE,GREEN,YELLOW
。现在我想检查是否存在多种颜色,并且我不知道存储值的顺序。从Oracle数据库中的逗号分隔值获取特定值
我已经使用查询关键词,比如:
SELECT COLOR from DUMMY_TAB WHERE (COLOR LIKE '%GREEN%' OR COLOR LIKE '%VOILET%' OR COLOR LIKE '%ORANGE%');
但查询不返回任何东西。我可以在这里得到任何帮助吗?
除了一个事实,即存储在列中的逗号分隔的列表是可怕的做法违反基本正常化,如果表中的数据为你描述,查询您发布将返回该行。如果查询未返回行,则数据不得包含字符串“GREEN”。当您搜索大写字母值时,表格中的数据可能是小写字母吗? – 2014-09-25 11:17:41
我的行有大写逗号分隔值,与我在问题中询问的相同。像GREEN,BLUE,YELLOW – Imran 2014-09-25 11:21:32
如果数据和查询完全按照您显示的那样进行,则查询将返回一行。向我们展示一个独立的示例,复制我们可以在我们的机器上运行的问题。否则,几乎不可能调试出什么问题 – 2014-09-25 11:26:27