Sql 当条件在哪里
我有两张桌子。一个产品有2个价格,我需要比较最大数量和数量,应该只选择一个记录 我的查询不起作用Sql 当条件在哪里,sql,oracle11g,Sql,Oracle11g,我有两张桌子。一个产品有2个价格,我需要比较最大数量和数量,应该只选择一个记录 我的查询不起作用 SELECT product_id, quantity, max_count FROM table1 WHERE WHEN max_count > quantity THEN price_type = 1 ELSE price_type = 2 LEFT JOIN table2 ON table1.product_id = table2.product_id
SELECT product_id, quantity, max_count
FROM table1 WHERE WHEN max_count > quantity
THEN price_type = 1 ELSE price_type = 2
LEFT JOIN table2 ON table1.product_id = table2.product_id
只要使用基本逻辑。您查询的子句顺序也不正确:
SELECT product_id, quantity, max_count
FROM table1 LEFT JOIN
table2
ON table1.product_id = table2.product_id
WHERE (max_count > quantity AND price_type = 1) OR
(max_count <= quantity AND price_type = 2);
如果max_count的值为NULL,则逻辑会稍微复杂一些。您缺少“Case”,并且您的Where应该在加入后出现