【发布时间】:2016-11-09 15:01:34
【问题描述】:
嗨,我有一个表格,其中的值如下所示
user_country
-------------
210|9|211
210|211
9|87
210|117|54
我有一个分割函数,它用字符“|”分割数据. 当用户输入像 210|9 这样的值时 应返回包含 210 和 9 值的列(即应仅返回第 1 行)。 我尝试了多个存在但无法得到实际答案
到目前为止尝试过:
SELECT 1
FROM TABLE(split_text_fn('210|9', '|')) a
WHERE EXISTS
(SELECT 1
FROM TABLE(split_text_fn('210|87', '|')) b
WHERE b.COLUMN_VALUE = a.COLUMN_VALUE
AND EXISTS
(SELECT 1
FROM TABLE(split_text_fn('210|9', '|')) a1
WHERE a1.COLUMN_VALUE = b.COLUMN_VALUE))
【问题讨论】:
-
请发布您尝试过的代码。
-
你会考虑标准化你的数据库模型吗?同一列中的多个数据不是一个好习惯。
-
另外,请发布该数据所需的结果
-
从表中选择 1(split_text_fn('210|9','|'))a 存在于哪里(从表中选择 1(split_text_fn('210|87','|'))b 在哪里b.column_value = a.column_value 并且存在(从表中选择 1(split_text_fn('210|9','|'))a1 WHERE a1.column_value = b.column_value))
-
@manikandan 编辑问题并添加查询,不要在 cmets 向我们扔。
标签: oracle exists split-function