我正在Oracle Apex 4.2中构建报告.构建报告的表在其中一列中有多个值.
-----------------------------------
| ID | NAME | PROJECT_ID |
-----------------------------------
| 1 | P1 | 23:45:56 |
| 2 | P2 | 23 |
| 3 | P3 | 45:65 |
-----------------------------------
Run Code Online (Sandbox Code Playgroud)
我想构建一个查询来检索基于project_id的名称.
Select name from table where project_id = 23;
Run Code Online (Sandbox Code Playgroud)
这显然只返回P2但是如果我们搜索23,我想构建一个返回P1和P2的查询.
任何帮助非常感谢.
您可以使用LIKE而不是=:
Select name from table where project_id LIKE '%23%';
Run Code Online (Sandbox Code Playgroud)
如果您的示例中有一个常见的分隔符,例如":",则可以使用以下内容排除"123"之类的结果:
SELECT name FROM table WHERE ':' || project_id || ':' LIKE '%:23:%'
Run Code Online (Sandbox Code Playgroud)
通过将分隔符连接到字符串的前面和后面,您不必编写多个条件:LIKE '23:%'或LIKE'%:23:%'或LIKE'%:23'来处理第一个和列表中的最后一个数字.