考虑一个名为记录的表,其中包含列(名称(TEXT),价格(INT),颜色(TEXT),车辆类型(TEXT))。
select name, price, color, vehicletype where
"如果是黑色轿车,我准备支付10,000,但如果是红色或 白色,然后不超过8,000。对于任何其他颜色,我不会胜过 7,000,除非是SUV,在这种情况下,我的预算高达15,000 对于黑色的,或对于任何其他颜色,最多为14,000。"
使用where子句与"和"回答了这个问题和"或"。寻找一种更有效的方法来解决这个问题。
答案 0 :(得分:0)
您可以尝试UNION
或UNION ALL
例如
Select * from table where color = 'black' and price <= 10000
UNION
Select * from table where color in ('red', 'white') and price <= 8000
UNION
等
答案 1 :(得分:0)
如果是黑色轿车,我准备支付10,000,但如果是红色或 白色,然后不超过8,000。对于任何其他颜色,我不会胜过 7,000,除非是SUV,在这种情况下,我的预算高达15,000 对于黑色的,或对于任何其他颜色,最多为14,000。
SELECT name, price, color, vehicletype FROM table
WHERE (UPPER(vehicletype) = 'SEDAN'
AND ((UPPER(color) = 'BLACK' AND price <= 10000)
OR (UPPER(color) IN ('RED','WHITE') AND price <= 8000)
OR (UPPER(color) NOT IN ('BLACK','RED','WHITE') AND price <= 7000)))
OR (UPPER(vehicletype) = 'SUV'
AND ((UPPER(color) = 'BLACK' AND price <= 15000)
OR (UPPER(color) != 'BLACK' AND price <= 14000)))