Как сделать это sql. (условия sql)

0

Query:

  SELECT * 
    FROM Post 
ORDER BY Post.rating <-- Here , i want ( Post.rating * 5 ) when Post.recommended = 1 ) 

Спасибо всем людям.

  • 0
    я не понимаю ваш вопрос. Можете ли вы уточнить или прояснить вопрос? благодарю вас
Теги:

5 ответов

4
Лучший ответ

Использование:

  SELECT p.*
    FROM POST p
ORDER BY CASE 
           WHEN p.recommended = 1 THEN p.rating * 5
           ELSE p.rating
         END
  • 0
    +1 Понятно, читабельно и легко понять.
1
SELECT * FROM Post 
ORDER BY case Post.rating when 1 then post.rating * 5 else post.rating end
  • 0
    Три принципиально идентичных ответа в течение 1 минуты. Если повезет, по крайней мере один из нас прав!
  • 0
    @ Джонатан Леффлер: Все правы ;-)
1
  SELECT * 
    FROM Post 
ORDER BY Post.rating * IF(recommended = 1, 5, 1)
1

Это работает?

SELECT *
  FROM Post
 ORDER BY CASE Recommended WHEN 1 THEN Rating * 5 ELSE Rating END

Поскольку существует только одна таблица, ссылки на столбцы недвусмысленны, поэтому я удалил префиксы Post., которые позволяют избежать горизонтальной полосы прокрутки.

0

попробовать

SELECT * 
    FROM Post 
ORDER BY if(Post.recommended = 1,Post.rating * 5,Post.rating)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню