我有一个包含 2 列名称和包的表。 package 的一个示例值是“BGA,BGA DUAL DIE,QFP,QFP DUAL DIE”。
我如何做一个 sql,它可以准确地选择我输入的包的名称。 假设对于我的代码部分,bd.pkg 的输入是“BGA”
def generateBdHistoryTable(ApprovalHeader ah,BondingDiagram bd){
if(bd.pkg!=null){
String kitTypeHolder;
def kitTypeMap = [:];
List kitTypeLists = KitType.executeQuery("select name from KitType where (packages like '"+bd.pkg+"%' or packages like '%,"+bd.pkg+"%')");
结果是包含两者的行
BGA
BGA DUAL DIE
我只希望当输入是“BGA”时,包名称“BGA”是结果,当输入是时,包名称“BGA DUAL DIE”是结果等等。对于这种情况,我应该如何查询?
最佳答案
select name
from KitType
where ','||packages||',' like '%,BGA,%'
或者使用正则表达式:
select name
from KitType
where REGEXP_LIKE( packages, '(^|,)BGA(,|$)' )
关于java - Oracle SQL 在由逗号分隔的许多值组成的一列中选择特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326754/