[英]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.