FIND_IN_SET 对应的Oracle
时间: 2023-10-26 18:07:07 浏览: 64
Oracle没有内置的FIND_IN_SET函数,但是可以通过手动创建函数来实现Oracle没有内置的FIND_IN_SET函数,但是可以通过手动创建函数来实现类似的功能。可以使用如下的代码创建一个名为FIND_IN_SET的函数:
create or replace function FIND_IN_SET(arg1 in varchar2,arg2 in varchar2) return number is
Result number;
begin
select instr(','||arg2||',' , ','||arg1||',') into Result from dual;
return(Result);
end FIND_IN_SET;
这个函数的作用是在arg2中查找arg1是否存在,如果存在则返回arg1在arg2中的位置,否则返回0。
相关问题
Oracle FIND_IN_SET
很抱歉,但是在 Oracle 数据库中没有内置的 FIND_IN_SET 函数。FIND_IN_SET 函数通常在其他数据库系统中用于在逗号分隔的字符串列表中查找特定值的位置。在 Oracle 中,你可以使用其他方法来实现相似的功能。例如,你可以使用 INSTR 函数来检查一个字符串是否包含另一个字符串,然后使用 REGEXP_SUBSTR 函数来获取匹配的位置。以下是一个示例:
SELECT column_name
FROM table_name
WHERE INSTR(',' || comma_separated_list || ',', ',' || search_value || ',') > 0;
在这个示例中,column_name 是你想要检查的列名,table_name 是表名,comma_separated_list 是逗号分隔的字符串列表列,search_value 是要查找的值。请注意,我们在两个字符串前后都添加了逗号,以确保精确匹配。
希望这可以帮助到你!如果有任何进一步的问题,请随时提问。
oracle 替代 find_in_set
在 Oracle 中,可以使用 REGEXP_LIKE 函数来替代 MySQL 中的 find_in_set 函数。REGEXP_LIKE 函数用于在字符串中查找匹配的模式。
例如,假设有一个表格名为 data,包含一个名为 values 的列,存储了逗号分隔的值。我们想要查找包含特定值的行。可以使用以下查询来实现类似于 find_in_set 的功能:
```sql
SELECT *
FROM data
WHERE REGEXP_LIKE(values, '(^|,)(value)(,|$)')
```
在上述查询中,将 "value" 替换为要查找的特定值。这个正则表达式模式将匹配以逗号开头或结尾,或者被逗号包围的值。
希望以上信息能对你有所帮助!如有其他问题,请随时提问。