首页 > 解决方案 > 有没有办法从 DB2 中 where 子句中的条件集获取结果

问题描述

我有常用的衬衫库存表:尺码、颜色和品牌。我必须找到匹配的价格并添加到电子表格中的列表中

我对【大号、红色、耐克】、【小号、白色、彪马】和【中号、蓝色、H&M】感兴趣

我现在正在做的是:

select size,colour,brand,price from inventory 
where size in ('large','small','medium')
and colour in ('red','white','blue')
and brand in ('Nike','Puma','H&M')

然后我得到一长串满足 3*3 条件的任意组合的库存。然后我会做一个 xlookup 来找到我需要的三个确切的组合。

(我的实际列表显然要长得多,并且具有更多具有更多值的变量。但这是最简单的示例)

这显然非常无效,但我不知道如何使我的查询更直接。

有什么方法可以创建一个简单的循环,例如,一个条件数组?就像是

condA=('large','small','medium')
condB= ('red','white','blue')
condC=('Nike','Puma','H&M')
for a = 0 to 2
select size, colour,brand,price from inventory 
where size=condA(a)
and colour=condB(a)
and brand=condC(a)
next a

如果这有所不同,我正在使用 DB2 数据库......

标签: sqldb2where-clause

解决方案


最好的方法是使用您正在寻找的确切组合直接过滤案例:

select size,colour,brand,price from inventory 
where (size ='large' and brand = 'Nike' and colour='red')
or ( size ='small' and brand = 'Puma' and colour='white') 
or (size ='medium' and brand = 'H&M' and colour='blue')

这样你就不需要查看提取的结果来确保组合是正确的


推荐阅读