首页 > 解决方案 > 需要更改 SQL 查询以获得临时结果

问题描述

我只需要一个查询的临时结果。如果子字符串条件为真,我想将其 car_performance 值降低 %10 (car_performance = car_performance*0.9;) 并将这个子字符串真车与其他车进行比较,但仅用于查询,我不想更改 SQL 数据库中的真实数据.

所以我想我需要把这些数据放到一个新的临时表中,降低 car_performance 值,但我不知道如何编写它。

SELECT * 
FROM car_list 
     IF SUBSTRING(car_model, 9, 1) = '3'` 
        car_performance = car_performance*0.9; 
ORDER BY car_performance ???

标签: mysqlsql

解决方案


我想您需要根据其中一些汽车的状况对整套汽车进行比较,而其余汽车则保持原样。如果是这样,CASE WHEN ... THEN .. ELSE ...条件语句将起到作用,例如

SELECT CASE WHEN SUBSTRING(car_model, 9, 1) = '3' 
            THEN car_performance * .9 
            ELSE car_performance 
             END AS car_performance
  FROM car_list 
ORDER BY car_performance

推荐阅读