sql oracle比较包含子字符串的字符串

时间:2019-02-12 19:45:14

标签: sql oracle

我正在使用sql Oracle,并且在数据库中有一个表,其中包含一些action值。例如:

id  action
1   REH001
2   REH002
3   REH003
4   LOA001
5   LOA002
6   RFL

如果操作与多个值的子字符串匹配(使用定界符;),我想获取ID

例如,我想将其与字符串LOA;RFL进行比较 因此,如果前三个字符等于LOA或RFL,我想获取ID。 对于此示例,它必须返回ID 4,5和6

但这并不总是前三个字符。例如,我想获取与子字符串REH003;TRE匹配的ID。 对于我的示例,这将返回ID 3

我试图简化我的问题,因为这很难解释,但我想您会从我的例子中理解。

2 个答案:

答案 0 :(得分:2)

您可以将输入字符串转换为正则表达式:

where regexp_like(action, '^(' || replace(:compare_string, ';', '|') || ')')

答案 1 :(得分:1)

检查此:

SQL Fiddle

Oracle 11g R2架构设置

var emptyList = CreateListOfAnonType(()=>new { Id = default(int), Name = default(string) });
//or
var existingAnonInstance = new { Id = 59, Name = "Joe" };
var otherEmptyList = CreateListOfAnonType(existingAnonInstance);

查询1

<VirtualHost *:80>
  ServerName example.com
  Redirect / https://example.com
</VirtualHost>

Results

this is some test = "key.properties";
properties = "value.properties";