簡體   English   中英

如何檢查/選擇字符串是否包含表列值中的值?

[英]How to check/select if a string contains value from a table column values?

可以說我有這個數字123456789,並且我有一個表列,這些表列具有不同的值,例如:

TABLE_COLUMN
123
456
555
763

有沒有一種方法可以像SELECT * FROM TABLE WHERE 123456789 CONTAINS(該表列中的值)那樣進行操作。

您在找這個嗎?

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

顯式強制轉換不是必需的,但是我不喜歡隱式類型轉換。

如何INSTR

SQL> with test (tc) as
  2    (select '123' from dual union all
  3     select '456' from dual union all
  4     select '555' from dual union all
  5     select '763' from dual
  6    )
  7  select *
  8  from test
  9  where instr('123456789', tc) > 0;

TC
---
123
456

SQL>

您顯示了一些偽代碼,但是我懷疑那是您想要做的。 您顯示“從表中的位置選擇* ...”-字符串123456789在同一表中您具有必須對其進行檢查的列嗎? 聽起來很奇怪。

相反,我假設您有一個表,其中包含一列必須測試的值和一個“輸入”值(一個值或另一個表中的值),並且您必須針對所有值測試該輸入值(在所有行中)。

如果是這樣,您可能想要這樣……我將輸入顯示為綁定變量,但是您可以輕松地將其更改以用於其他用途。

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

如果輸入(或存儲在該列中的值)是數字而不是字符串,則可以使用TO_CHAR()轉換為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM