Sql 甲骨文:有可能吗?

Sql 甲骨文:有可能吗?,sql,oracle,Sql,Oracle,有可能做这样的事吗 即 在('%1','%2')中 这些值不少 您将如何解决此任务?使用like本身如何 Column LIKE '%1' OR Column LIKE '%2' 使用like本身怎么样 Column LIKE '%1' OR Column LIKE '%2' 如果只有少数,只需将它们与或组合即可: column like '%1' or column like '%2' or... 如果您有很多,您可以创建一个带有模式的表并加入到其中 create table match

有可能做这样的事吗

在('%1','%2')中

这些值不少


您将如何解决此任务?

使用like本身如何

Column LIKE '%1' OR Column LIKE '%2'

使用like本身怎么样

Column LIKE '%1' OR Column LIKE '%2'

如果只有少数,只需将它们与
组合即可:

column like '%1' or column like '%2' or...
如果您有很多,您可以创建一个带有模式的表并加入到其中

create table matches (
   match char(10)
);

insert into matches values
    ('%1'),('%2'),...;

select * from table
    inner join matches on table.column like matches.match;
如果一行匹配多个模式,则重复行会出现一些问题,但您可以根据需要的最终输出类型对其进行修改

作为第三个选项,如果它们的长度相同,则可以使用
substr()
而不是
like

select * from table where substr(column,-1,1) in ('1','2',...)

这将检查最后一个字符是否在值集中。

如果只有少数字符,只需将它们与
组合即可:

column like '%1' or column like '%2' or...
如果您有很多,您可以创建一个带有模式的表并加入到其中

create table matches (
   match char(10)
);

insert into matches values
    ('%1'),('%2'),...;

select * from table
    inner join matches on table.column like matches.match;
如果一行匹配多个模式,则重复行会出现一些问题,但您可以根据需要的最终输出类型对其进行修改

作为第三个选项,如果它们的长度相同,则可以使用
substr()
而不是
like

select * from table where substr(column,-1,1) in ('1','2',...)

这将检查最后一个字符是否在值集中。

您也可以使用REGEXP\u LIKE而不是LIKE。在这种情况下,它可以更灵活

要获取以“1”或“2”结尾的所有内容,只需使用:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12]$')
[12]表示匹配1或2。$means与字符串的结尾匹配

如果你需要这样的东西:

LIKE '%1' OR LIKE '%2' or LIKE '%A' or LIKE '%W'
。。。您只需在方括号内添加其他字符:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12AW]$')
或者,如果您想要任何以数字结尾的内容,您可以使用:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[[:digit:]]$'

您也可以使用REGEXP_LIKE而不是LIKE。在这种情况下,它可以更灵活

要获取以“1”或“2”结尾的所有内容,只需使用:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12]$')
[12]表示匹配1或2。$means与字符串的结尾匹配

如果你需要这样的东西:

LIKE '%1' OR LIKE '%2' or LIKE '%A' or LIKE '%W'
。。。您只需在方括号内添加其他字符:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12AW]$')
或者,如果您想要任何以数字结尾的内容,您可以使用:

SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[[:digit:]]$'

与其他示例基本相同,但最接近您的示例:

SELECT deptno, empno, ename FROM scott.emp
 WHERE job IN 
   (SELECT job FROM scott.emp WHERE job Like ('SALE%') OR job Like ('MANAG%'))
/

与其他示例基本相同,但最接近您的示例:

SELECT deptno, empno, ename FROM scott.emp
 WHERE job IN 
   (SELECT job FROM scott.emp WHERE job Like ('SALE%') OR job Like ('MANAG%'))
/

你能用临时表做个例子吗?@Gik25,当然可以。不过,我不是Oracle用户。你为什么不自己试试呢?我不太好,但我会试试的。谢谢你,你能用临时表做个例子吗?@Gik25,当然可以。不过,我不是Oracle用户。你为什么不自己试试呢?我不太好,但我会试试的。谢谢你你从哪里获得价值观?你从哪里获得价值观?