我有以下表1
Brand Payment_method
Soap Cash
Soap Card
Juice Cash
pen Card
品牌是强制性提示,而Payment_method是非强制性提示
要求:
如果我为像牌肥皂这样的品牌提供价值而对payment_method没有价值。那么它应该如下所示
brand payment_method
soap Cash
soap Card
如果我为soap这样的品牌提供价值,pay_method的价值为Cash.then它应该提供以下输出
brand payment_method
soap Cash
使用过的代码:
代码1:如果使用以下代码
select * from table1 where Brand=:brand and payment_method=:PM
其中:brand ='Soap'和:PM =''
它应该显示brand ='Soap'的价值..但由于和条件而且:PM是空白它没有显示记录
代码2:如果我使用以下或条件
select * from table1 where where :brand = 'Soap' or :PM ='card'
它应显示以下值:brand ='Soap'和:PM ='card'但它显示在records.pen品牌下面
brand payment_method
Soap Card
pen Card
任何使用SQL.please帮助我实现要求的方法
答案 0 :(得分:0)
SELECT *
FROM suppliers
WHERE (state = 'California' AND supplier_id <> 900) OR (supplier_id = '');
这里它(supplier_id = '')
没有返回,所以你只有加利福尼亚州。
但是
SELECT *
FROM suppliers
WHERE (state = 'California' AND supplier_id <> 900) OR (supplier_id = 100);
此(supplier_id = 100)
与华盛顿匹配,因为其supplier_id为100.
这些也处于OR状态,这是在上述查询中获得华盛顿的原因
示例
A or '' = A
A or B = AB
获得预期结果
SELECT *
FROM suppliers
WHERE (state = 'California') AND ((supplier_id <> 900) OR (supplier_id = 100))