我遇到問題。我想在我的SQL查詢IF語句使用,他們使用該聲明進一步的計算結果:在MySQL中使用IF語句以及使用語句結果的進一步計算
SELECT average_rating, number_of_ratings,
IF(number_of_ratings < 500 AND number_of_ratings > 100, 0.90,
IF(number_of_ratings>=500 AND number_of_ratings<=1000, 0.95,
IF(number_of_ratings>1000, 0.99, 0.80)
)
) AS rating_factor,
ROUND((rating_factor * average_rating), 4) AS factored_rating
FROM table
ORDER by factored_rating DESC
但是,它不工作,並返回一個錯誤:未知列「rating_factor」'字段列表'
有沒有人有一個想法如何使它的工作?
在此先感謝。
不能在同一語句引用一個別名列。你需要寫一個子查詢 – Kermit
他的用法並不複雜。 –
作爲一個'CASE'語句而不是嵌套的IFs將使它更易於閱讀恕我直言 –