Sql 如何检查/选择字符串是否包含表列值中的值?

Sql 如何检查/选择字符串是否包含表列值中的值?,sql,oracle,Sql,Oracle,假设我有一个数字123456789,我有一个表列,它有不同的数值,比如: TABLE_COLUMN 123 456 555 763 是否有一种方法可以执行类似于从表中选择*的操作,其中123456789包含来自该表列的值。是否正在查找此方法 select t.* from table t where cast(123456789 as varchar2(255)) like '%' || cast(table_column as varchar2(255)) || '%'; 显式类型转换不是

假设我有一个数字123456789,我有一个表列,它有不同的数值,比如:

TABLE_COLUMN
123
456
555
763

是否有一种方法可以执行类似于从表中选择*的操作,其中123456789包含来自该表列的值。

是否正在查找此方法

select t.*
from table t
where cast(123456789 as varchar2(255)) like '%' || cast(table_column as varchar2(255)) || '%';

显式类型转换不是必需的,但我不喜欢隐式类型转换

你在找这个吗

select t.*
from table t
where cast(123456789 as varchar2(255)) like '%' || cast(table_column as varchar2(255)) || '%';
显式类型转换不是必需的,但我不喜欢隐式类型转换

仪表怎么样

INSTR怎么样


您展示了一些伪代码,但我怀疑这是您想要做的。显示“从表中选择*”,其中…-字符串123456789是否与您必须检查的列位于同一个表中?听起来很奇怪

相反,我假设您有一个表,其中有一列值,您必须对其进行测试,一个输入值可能是单个值,也可能是另一个表中的值,您必须根据测试表中所有行中的所有值测试该输入值

如果是这样,你可能想要这样的东西。。。我将输入显示为绑定变量,但是您可以很容易地将其更改为其他用途

select <whatever>
from   <wherever>
where  exists (select * from <table> where instr(:input_string, table_column) > 0)

如果该列中存储的输入或值是数字而不是字符串,则可以使用to_CHAR将其转换为字符串。

您显示了一些伪代码,但我怀疑您是否希望这样做。显示“从表中选择*”,其中…-字符串123456789是否与您必须检查的列位于同一个表中?听起来很奇怪

相反,我假设您有一个表,其中有一列值,您必须对其进行测试,一个输入值可能是单个值,也可能是另一个表中的值,您必须根据测试表中所有行中的所有值测试该输入值

如果是这样,你可能想要这样的东西。。。我将输入显示为绑定变量,但是您可以很容易地将其更改为其他用途

select <whatever>
from   <wherever>
where  exists (select * from <table> where instr(:input_string, table_column) > 0)

如果该列中存储的输入或值是数字而不是字符串,您可以使用to_CHAR将其转换为字符串。

谢谢您的回答。我在找这样的东西,我不知道怎么解释:foreach num in numbers检查1234567.containsum是否包含该num,然后选择它。@Popplar。我认为这就是它的作用,这取决于你所说的包含的意思。@GordonLinoff-不,不完全是。OP希望测试输入字符串是否包含该列中的任何字符串。您的查询还做了一些其他的事情—它将输入包含的列中的所有子字符串作为子字符串返回。实际上,您完全正确。我使用了不正确的输入,这就是select没有返回任何行的原因。幸运的是,我不需要投,因为他们都有相同的类型号。@mathguy是的,这就是我想做的。Gordon answer I think?返回输入字符串中包含该行的列值的行。感谢您的回答。我在找这样的东西,我不知道怎么解释:foreach num in numbers检查1234567.containsum是否包含该num,然后选择它。@Popplar。我认为这就是它的作用,这取决于你所说的包含的意思。@GordonLinoff-不,不完全是。OP希望测试输入字符串是否包含该列中的任何字符串。您的查询还做了一些其他的事情—它将输入包含的列中的所有子字符串作为子字符串返回。实际上,您完全正确。我使用了不正确的输入,这就是select没有返回任何行的原因。幸运的是,我不需要投,因为他们都有相同的类型号。@mathguy是的,这就是我想做的。Gordon回答“我认为是吗?”时,返回输入字符串中包含该行的列值的行。