基于另一个参数的条件where子句

Adhyatmik

我有3张桌子:

Stores (
    store_Id
)

Products(
    product_Id,
    store_Id
)

Price(
    product_Id,
    currency,
    price   
)

我的问题陈述是这样的:

产生如下结果集:

如果store_Id为1,则选择价格低于3的那些产品

如果store_Id为2,则选择价格低于5的那些产品

如果store_Id为3,则选择价格低于6.5的产品

结果集应包含以下列:store_Id,product_Id,货币,价格。

我可以通过在循环中运行像这样的查询并替换参数并最终收集所有结果来在Java中做到这一点:

select ... 
from stores s join products p on s.store_Id = p.store_Id
join price pr on pr.product_Id = p.product_Id
where s.store_Id = ?
and pr.price <= ?

我的问题是:可以在不使用Java的情况下仅用1个查询在SQL本身中实现(原因是:产品和价格是一个包含成千上万条记录的庞大表)

我正在使用DB2 v10.5

蒂姆·比格莱森(Tim Biegeleisen)

是的,您可以将此逻辑合并到WHERE子句中:

select ... 
from stores s
inner join products p
    on s.store_Id = p.store_Id
inner join price pr
    on pr.product_Id = p.product_Id
where
    (s.store_Id = 1 and pr.price < 3) or
    (s.store_Id = 2 and pr.price < 5) or
    (s.store_Id = 3 and pr.price < 6.5);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

mysql where 子句基于另一个查询

where子句基于来自另一个表的select语句

基于SQL Server中另一个查询的Where子句

基于另一个参数值的条件参数类型

如果满足两个条件(一个在 WHERE 子句中,另一个在 HAVING 子句中)中的任何一个,则选择行

在Where子句中添加另一个表

使用NOT IN的另一个表中的WHERE子句

在另一个查询的计数行中基于WHERE条件

基于对另一个 IF 语句的响应的 IF 语句条件

基于另一个集合中的条件聚合

基于另一个分组的条件分组

基于另一个键的值的条件类型

基于另一个ENV变量的条件集

基于另一个范围的条件格式

从where子句到另一个where子句的SQL INSERT

SQL - 来自另一个表的 WHERE 条件

如何在 IN 子句中传递参数并在 jdbcTemplate 中传递另一个参数

Laravel DB :: raw读取where子句中的第二个参数而不是来自另一个表的动态列的字符串

TypeScript是否可以基于另一个参数来调整参数?

基于另一个参数向argparse添加参数的Python方法

给定类型的Require参数基于TypeScript中的另一个参数

Scala:基于相同层次结构的另一个类型参数值限制参数

具有基于另一个参数的默认参数的函数

如何使用基于另一个参数的对象列表中的参数?(JavaScript)

如何基于SSRS中的另一个参数填充多值参数

基于另一个参数约束参数类型的最有效方法

基于另一个参数的打字稿函数参数类型

如何引用在WHERE子句中计算的另一个字段?

WHERE子句与Laravel中的另一个表有关系